测量地图面积

1:先在页面上弄一个div,给它设置样式,并且给它点击事件mapMeasurementArea (),创建矢量图层:
markerLayer = new SuperMap.Layer.Markers(“Markers”);
把创建的矢量图层添加到Map地图里面:
map.addLayers(markerLayer);
然后创建画面控制:
drawPolygon = new SuperMap.Control.DrawFeature(polygonLayer, SuperMap.Handler.Polygon);
drawPolygon.events.on({ “featureadded”: drawCompletedDrawPolygon });
2:写击事件,每次点击的时候都要清除上一次的查询,然后开始绘制方框:
function mapMeasurementArea() {
clearFeatures();
drawPolygon.activate();
drawLine.deactivate();
}
3:写量算画面数据获取:
function drawCompletedDrawPolygon(drawGeometryArgs) {
drawPolygon.deactivate();
var geometry = drawGeometryArgs.feature.geometry,
measureParam = new SuperMap.REST.MeasureParameters(geometry),
myMeasuerService = new SuperMap.REST.MeasureService(url);
myMeasuerService.events.on({ “processCompleted”: measureCompleted1, “processFailed”: processFailed111 });
myMeasuerService.measureMode = SuperMap.REST.MeasureMode.AREA;

        myMeasuerService.processAsync(measureParam); 
    }

4:获取上一步查询到的数据,然后将数据用弹窗显示出来,
function measureCompleted1(measureEventArgs) {

        var area = measureEventArgs.result.area,
                unit = measureEventArgs.result.unit;
        Laylayer.open({
            shade: 0,
            content: "量算结果:" + area + "米",
            zIndex: 0,
            offset: 't',
            yes: function (index, layero) {
                Laylayer.close(index);
                clearFeatures();
            },
            cancel: function (index, layero) {
                Laylayer.close(index);
                clearFeatures();
            }
        })
    }

5:看看效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44543131/article/details/106402915
今日推荐