地图量算 |
支持地图量算。包括距离量算、面积量算。量算结果的获取及展示可在主线程和监听器类中两种方式来实现。
距离量算。下面示例为距离量算,量算结果在主线程中进行获取及展示。
// 距离量算结果 public void Measure_distance() { // 构造查询参数 MeasureParameters parameters = new MeasureParameters(); Point2D[] pts = { new Point2D(23, 34), new Point2D(53.55, 12.66), new Point2D(73.88, 12.6) }; parameters.point2Ds =pts; MeasureService service = new MeasureService(URI); MyMeasureEventListener listener = new MyMeasureEventListener(); service.process(parameters, listener,null); try { listener.waitUntilProcessed(); } catch (Exception e) { e.printStackTrace(); } // 结果验证 assertNotNull("The result is null!", result); assertEquals("The distance of measure",6098355.576672727, result.distance); assertEquals("The area of measure", -1.0, result.area); assertEquals("The unit of measure", Unit.METER, result.unit); } // 量算监听器类 class MyMeasureEventListener extends MeasureEventListener { @Override public void onMeasureStatusChanged(Object sourceObject, EventStatus status) { // 量算结果 result = (MeasureResult) sourceObject; } }
面积量算。下面示例为面积量算,量算结果在主线程中进行获取及展示。
// 面积量算结果 public void Measure_Area() { // 构造查询参数 MeasureParameters parameters = new MeasureParameters(); Point2D[] pts = { new Point2D(23, 34), new Point2D(53.55, 12.66), new Point2D(73.88, 12.6),new Point2D(23,34) }; parameters.point2Ds =pts; MeasureService service = new MeasureService(URI); MyMeasureEventListener listener = new MyMeasureEventListener(); service.process(parameters, listener,MeasureMode.AREA); try { listener.waitUntilProcessed(); } catch (Exception e) { e.printStackTrace(); } // 结果验证 assertNotNull("The result is null!", result); assertEquals("The distance of measure",-1.0, result.distance); assertEquals("The area of measure", 3.157590930368346E12, result.area); assertEquals("The unit of measure", Unit.METER, result.unit); } // 量算监听器类 class MyMeasureEventListener extends MeasureEventListener { @Override public void onMeasureStatusChanged(Object sourceObject, EventStatus status) { // 量算结果 result = (MeasureResult) sourceObject; } }
完整示例可参考SampleCode中的地图量算。