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:看看效果: