想找一个不依赖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();
            }
        }
 
最后,别忘了添加引用

arcgis js api前端完成面积测算的更多相关文章

  1. 基于ArcGIS JS API的在线专题地图实现

    0 引言     专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...

  2. geoserver图层属性查询及查询结果转换为arcgis js api能使用的格式

    一个项目使用了ArcGIS JS API开发GIS展示层,但GIS服务使用了Geoserver,这时加载Geoserver数据和查询数据就和之前完全不一样了,以下介绍下我使用ArcGIS JS API ...

  3. 关于ueditor与arcgis js api同用会报错的问题

    在ueditor与arcgis js api共用时,需要将ueditor\third-party\zeroclipboard\ZeroClipboard.js中的 if (typeof define ...

  4. ArcGIS JS API使用PrintTask打印地图问题解决汇总

    环境:来源于工作过程,使用的API是  arcgis js 3.*  3系API,4.*暂时没测试: 1.数据与打印服务跨域情况下,不能打印问题. 一般情况下,我们发布的数据服务和打印服务是在一台服务 ...

  5. ArcGIS JS API实现的距离测量与面积量算

    转自https://www.cnblogs.com/deliciousExtra/p/5490937.html

  6. arcgis js api 本地化配置

    配置arcgis library 根目录的init.js的 "baseUrl:",使其指向正确的地址

  7. Arcgis js API使用wmts方式加载GeoWebCache中的切片地图(转载)

    使用GeoWebCache的主要目的是其独立安装版能够发布arcgis的切片.我们知道,使用openlayer是调用geoserver最方便的方法,那么在发布完arcgis的切片后,怎么用arcgis ...

  8. ArcGIS js api 手动构建FeatureLayer

    坐标系 var spatialReference = new SpatialReference(4326);1要素坐标点 var pointArr = [ new Point(116.94431351 ...

  9. arcgis js api 4.X 自定义工具按钮

    // All material copyright ESRI, All Rights Reserved, unless otherwise specified. // See https://js.a ...

随机推荐

  1. 由sql注入联想到PreparedStatement

    PreparedStatement极大地提高了安全性. 即使到目前为止,仍有一些人连基本的恶意SQL语法都不知道. String  sql  =  "select  *  from  tb_ ...

  2. Struts2学习(一)————Struts2入门

    首先推荐一本书,虽然我还没看过,但是我以后肯定会看的,<Struts+技术内幕>提取密码:kg6w .现在只是停留在会使用struts2的层次,自己也想继续深入研究,但是感觉自己的知识面还 ...

  3. vuex学习及使用

    什么是vuex? 在SPA单页面组件的开发中vuex称为状态管理:简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取.进行修改,并且你的修改可以得到全局的响应 ...

  4. TCP/IP 详解

    分层 每一层负责不同的功能:     链路层 有时也称作数据链路层或网络接口层, 通常包括操作系统中的设备驱动程序和计算机 中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. ...

  5. 在EF中执行SQL语句(转载)

    在EF中执行SQL语句   你可能要问,我用EF不就为了避免写SQL吗?如果要写SQL我不如直接用ADO.NET得了.话虽然这么说没错,可有些时候使用EF操作数据还是有一些不方便,例如让你根据条件删除 ...

  6. Mybatis generator代码生成

    背景 项目中使用Mybatis做持久层框架,但由于开发成员水平不一,写dao的时候,各有各的偏好,有时候还会写出带sql注入漏洞的代码. 出现sql注入漏洞,一般是#和$的区别没弄明白: $ 直接把字 ...

  7. CDN使用心得:加速双刃剑

    文章图片存储在GitHub,网速不佳的朋友,请看<CDN 使用心得:加速双刃剑> 或者 来我的技术小站 godbmw.com 本文以腾讯云平台的 CDN 服务为例,记录下在个人网站开发和公 ...

  8. expressjs项目里使用npm run dev,实现热更新

    只需要在package.json文件里添加一句代码 "dev": "supervisor -i ./views ./bin/www" 添加的位置如上图所示, 然 ...

  9. jQuer插件满屏气泡飘落动画效果

    飘落动画效果插件引用: <script src="https://cdn.bootcss.com/JQuery-Snowfall/1.7.4/snowfall.jquery.min.j ...

  10. 2018-01-19 Xtext试用: 快速实现简单领域专用语言(DSL)

    环境搭建 使用的Eclipse版本: Oxygen.1a Release (4.7.1a) Build id: 20171005-1200, 通过添加Xtext - Download上列出的Relea ...