基于ArcGIS API for Javascript的地图编辑工具

摘要:
为了解决这个问题,ArcGISServer引入了代理。

转自:http://www.cnblogs.com/znlgis/p/3505646.html

最近工作上需要用ArcGIS API for Javascript来开发一个浏览器上使用的地图编辑工具,分享一下一些相关的开发经验。

我开发的地图编辑工具是根据ESRI提供的例子修改而来的,参考的例子是https://developers.arcgis.com/en/javascript/jssamples/ed_default_editingwidget.html

我们下面只说一些需要注意的问题:

1、代理的问题

Java Script API是基于REST访问的,通过GET的方式请求数据,这种方式有一个缺点,那就是URL的大少不能超过2048字符。为了解决这个问题ArcGIS Server引入一个代理。关代理的官方说明请参考Java Script API的 Using the Proxy Page一节(https://developers.arcgis.com/en/javascript/jshelp/ags_proxy.html)。

2、属性编辑的问题

当你去添加一个点或者一条线的时候,你肯定要去为这个点或者这条线输入一些我们数据库中定义好的属性,官方提供的例子是英文的,后台数据库也是英文的,这个问题就不明显,但是在我们这种中文环境下使用就会遇到我数据库里是英文的,客户端显示要是中文的这样的问题,想了很多办法效果都不理想,最后发现下面这段代码是可以的

 

 var featureLayerInfos = dojo.map(results, function(result) {
                return {
                    featureLayer: result.layer,
                    showAttachments: false,
                    isEditable: true,
                    fieldInfos: [
                        {fieldName: 'name', visible: true,isEditable:true, label:'点名:'},
                        {fieldName: 'type', visible: true,'isEditable':true, label:'类型:'},
                        {fieldName: 'direction', visible: true,isEditable:true,label:'方向:'},
                        {fieldName: 'floors', visible: true,isEditable:true, label:'经停楼层:'},
                        {fieldName: 'floor', visible: true,isEditable:true, label:'所在楼层:'}
                    ]
                };
            });

其实就是通过一些属性,把请求返回的图层信息根据需要格式化了一下,具体看帮助文档https://developers.arcgis.com/en/javascript/jsapi/editor-amd.html

3、编辑时的捕捉功能

我们在ArcGIS Desktop里面编辑的时候,会有捕捉功能,可以让我们准确的从某个点开始画新的图形,在ArcGIS API for Javascript里面也提供这个功能,具体的代码如下:

map.enableSnapping({snapKey:dojo.keys.copyKey});

好了,不说废话,这次就到这儿了,如果是用于浏览器上的数据编辑,ArcGIS API for Javascript确实比Openlayers强大一些,不过如果是手机端显示就必须是Openlayers了,请看我之前的博文

关于GeoWebCache的部署说明

http://www.cnblogs.com/znlgis/p/3487663.html

OpenLayers的定制

http://www.cnblogs.com/znlgis/p/3487896.html

免责声明:文章转载自《基于ArcGIS API for Javascript的地图编辑工具》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ieframe.dll 不可用Ruby 文件处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js(javascript)与ios(Objective-C)相互通信交互

随着苹果SDK的不断升级,越来越多的新特性增加了进来,本文主要讲述从iOS6至今,Native与JavaScript的交互方法 一、UIWebview && iframe && JavaScript  <=iOS6 iOS6原生没有提供js直接调用Objective-C的方式,只能通过UIWebView的UIWebVi...

JavaScript基础前二章

JavaScript能力和不及之处缺点1、JavaScript不能在Client的硬盘读出或写进档案(除了Cookies)2、JavaScript不能保密,可以看到原始码。3、没有server-side程序,不能在server开启档案或放下可记录的数据,唯一可与外界联络的方法是以Email的方式送出数据。 一句话,JavaScript是纯粹的浏览器软件。...

ArcGIS的网络分析【转】

Network的类型(1)Transportation Network:是Undirected Network。表示Network的Edge具备方向,用户可以自由定义在网络中前进的方向,速度以及终点。例如一个卡车司机可以决定在哪条道路上开始行进,在什么地方停止,采用什么方向。并且还可以给网络设置限定性规则,例如是单行线还是禁行。在ArcGIS中,Trans...

关于arcgis发布wfs问题

博客地址http://www.cnblogs.com/shizhongtao/p/3453594.html 官方文档中有这么一段描述: 从地图创建 WFS 服务 您 可以从 ArcMap 地图文档 (.mxd) 入手创建 WFS 服务。使用 ArcGIS Server 管理器或者 ArcCatalog 将地图文档作为 ArcGIS Server 地图...

C# AE 合并要素/合并图形/merger功能

功能描述 合并功能,准确的说是merge、union。 这两者在ArcMap中的差别就是:merger保留相同字段属性;union是可以选择创建新的合并图形还是直接用原始要素合并,合并属性不保留。 接口和使用方法 1. ITopologicalOperator接口,其下的ConstructUnion属性能够一次放入多个几何(ConstructUnion属性...

未能从程序集ESRI.ArcGIS.AddIns.SDK加载任务"ValidateAddInXMLTask"

开发ArcGIS Add-In程序,在编译时要注意Visual Studio与ArcGIS的版本问题。在多年前,使用的是VS2010+ArcGIS10.2组合,没有编译出错。现在ArcGIS版本不变,VS版本升级为2019,如果直接编译VS2010创建的Add-In程序会报错,具体如下: 错误描述 未能从程序集ESRI.ArcGIS.AddIns.SDK...