zoukankan      html  css  js  c++  java
  • arcgis js api前端完成面积测算

    想找一个不依赖GeometryService量算面积的方法,经过别人的帮助,终于在js帮助页上找到了。就是esri/geometry/geodesicUtils中的geodesicAreas方法,该方法通过Geometry获取其面积,在geodesicUtils还有一个获取几何要素长度的方法,geodesicLengths,可以用来获取长度。

    当然,在使用这些方法之前,有些需要将Geometry转换一下投影,可以使用Geometry下的webMercatorUtils,在其中有webMercatorToGeographic(geometry)和geographicToWebMercator(geometry)这两个方法。不然,转出来的面积长度有可能是不对的。
     
    下面是我做的一个例子,结合了draw这个方法:
    画线和画面:
    function measureLenght() {
                toolbar.activate(esri.toolbars.Draw.POLYLINE);
            }
            function measureArea() {
                toolbar.activate(esri.toolbars.Draw.POLYGON);
            }
    在地图初始化的时候添加监听画图的事件:
                dojo.connect(toolbar, "onDrawEnd", GetLenthorArea);
     
    量算面积和长度方法:
    function GetLenthorArea(geometry) {//画图完毕后计算距离或者面积
                if (geometry.type == "polyline") {
                    var geo = esri.geometry.webMercatorToGeographic(geometry);
                    var Length = esri.geometry.geodesicLengths([geo], esri.Units.METERS);
     
                    Map.infoWindow.setContent("距离:" + Length+ "米");
                    Map.infoWindow.show();
                }
                else if(geometry.type == "polygon") {
                    var geo = esri.geometry.webMercatorToGeographic(geometry);
                    var Area = esri.geometry.geodesicAreas([geo], esri.Units.SQUARE_METERS);
                    Map.infoWindow.setContent("面积:" + Area + "平方米");
                    Map.infoWindow.show();
                }
            }
     
    最后,别忘了添加引用
  • 相关阅读:
    数据库三大范式另一角度的理解
    Log4j和Slf4j的联系和区别
    cglib和Jdk的对比
    Git- 忽略文件 ignore 无效
    GIT报错:git did not exit cleanly (exit code 1)
    Nginx和Zuul配合使用后,Cookie写入问题
    RabbitMQ报错:undefined: There is no template at js/tmpl/login.ejs
    Feign报错:The bean 'xxxxx.FeignClientSpecification' could not be registered.
    ES报错:NoNodeAvailableException[None of the configured nodes are available
    SpringBoot报错:
  • 原文地址:https://www.cnblogs.com/telwanggs/p/4616410.html
Copyright © 2011-2022 走看看