首页 / 浏览问题 / 云GIS / 问题详情
在天地图底图上实现测距测面
32EXP 2019年03月06日
之前用iserver发布的rest服务用下面代码可以测算地图距离,但是现在将地图服务调用的是国家天地图的wmts服务,请问怎么实现测距功能呢?

//绘完触发事件
function drawLineCompleted(drawGeometryArgs) {
        //停止画面控制
        drawLine.deactivate();
        //获得图层几何对象
        var geometry = drawGeometryArgs.feature.geometry,
        measureParam = new SuperMap.REST.MeasureParameters(geometry), /* MeasureParameters:量算参数类。 客户端要量算的地物间的距离或某个区域的面积*/
        myMeasuerService = new SuperMap.REST.MeasureService(url); //量算服务类,该类负责将量算参数传递到服务端,并获取服务端返回的量算结果
        myMeasuerService.events.on({ "processCompleted": measureLineCompleted });
        //对MeasureService类型进行判断和赋值,当判断出是LineString时设置MeasureMode.DISTANCE,否则是MeasureMode.AREA
        myMeasuerService.measureMode = SuperMap.REST.MeasureMode.DISTANCE;
        myMeasuerService.processAsync(measureParam); //processAsync负责将客户端的量算参数传递到服务端。
}

//测量结束调用事件
function measureLineCompleted(measureEventArgs) {
        var distance = measureEventArgs.result.distance;
        //var unit = measureEventArgs.result.unit;  //返回meter
        distance=distance.toFixed(3);
        showDistanceComplete(distance);
        //alert("量算结果:"+distance + "米");
}

1个回答

您好,正常的使用这个功能就可以做测量了,或者您可以用iserver转发一下这个天地图服务,转发成rest再做量测也可以
5,668EXP 2019年03月06日
那用SuperMap.Control.Measure这个类的方法可以实现量测么?
您好,如果地图有相关数据的话理论上是可以的
您好 如果使用这个方法和天地图底图的话  new SuperMap.REST.MeasureService(url);中的URL应该是什么呢
...