ArcGIS For JS 距离与面积量算的三种方法

在用ArcGIS For JS开发地图过程中,距离与面积的量算功能是比较常用的,下面我们来看看实现量算功能的三种方法。

1.GeometryService

GeometryService是ArcGIS For JS提供的一种服务,需要依赖ArcGIS发布的几何服务

 (1)定义geometryService

                    var geometryService = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
             dojo.connect(geometryService, "onLengthsComplete", this.lengthsCompleteHandler);
             dojo.connect(geometryService, "onSimplifyComplete",this.geometryService_simplifyCompleteHandler);

(2)在drawTool的draw-end事件中添加代码

距离量算

              var drawLine = new esri.geometry.Polyline(event.geometry);
               var lengthParams = new esri.tasks.LengthsParameters();
              lengthParams.polylines = [drawLine];
              lengthParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
              lengthParams.geodesic = true;
              lengthParams.polylines[0].spatialReference = new esri.SpatialReference(4490);
              geometryService.lengths(lengthParams);
                     latestEndpoint = drawLine.paths[0][0];

              //把线添加到地图
              var g = new Graphic(event.geometry, lengthLine);
              myGraphicsLayer2.add(g);

面积量算

                    addPolygonToMap(event.geometry);
               projectPolygon(event.geometry);

(3)结果处理

距离

            lengthsCompleteHandler: function (event) {
                var dist = event.lengths[0];
                var myAttributes = {};
                var lengthSymbol = new TextSymbol().setColor(myUtity.GetColorUint("00ff00", 1)).setAlign(Font.ALIGN_START).setFont(new Font("14px").setWeight(Font.WEIGHT_BOLD));
                if (dist < 3000) {
                    lengthSymbol.setText("长度为:" + dist.toFixed(2) + "米");
                } else {
                    lengthSymbol.setText("长度为:" + parseFloat(dist / 1000).toFixed(2) + "
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值