arcgis api js 测距测面(不依赖几何服务)

以上是实现效果。

1、引入测距、测面需要的模块;

"esri/symbols/Font", 
"esri/Color",
"esri/symbols/TextSymbol",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/SimpleLineSymbol",
"esri/toolbars/draw",
"esri/geometry/geometryEngine",

2、监听map的load事件,创建Draw()绘制对象;

var measureToolbar,lineSym,areaSym ;
map.on("load",function(evt){
    measureToolbar = new Draw(map);
    lineSym = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]),2);
    areaSym = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,new 
    SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([0, 0, 255]), 1),
    new Color([255, 255, 0, 0.3]));
})

3、绑定相应的元素触发测距(绘制polyline)、测面(绘制polygon);

measureLenght: function() {
       measureToolbar.activate(Draw.POLYLINE);
 },

 measureArea: function() {
       measureToolbar.activate(Draw.POLYGON);
 },

4、监听Draw()的绘制结束事件,通过回调获取到geometry进行处理;

 

   dojo.connect(measureToolbar, "onDrawEnd", GetLenthorArea);

    4.1 计算长度:取该线最后一个坐标点作为文本标注的点,设置文本为 改线的长度 ;

         

 var centerPoint = geometry.getPoint(geometry.paths.length - 1, geometry.paths.length);

    4.2 计算面积:取该多边形的中心点作为文本标注的点,设置为本为 该多边形的面积;

         

var centerPoint = geometry.getCentroid();

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值