转自:http://www.cnblogs.com/znlgis/p/3505646.htmljavascript
最近工做上须要用ArcGIS API for Javascript来开发一个浏览器上使用的地图编辑工具,分享一下一些相关的开发经验。html
我开发的地图编辑工具是根据ESRI提供的例子修改而来的,参考的例子是https://developers.arcgis.com/en/javascript/jssamples/ed_default_editingwidget.htmljava
咱们下面只说一些须要注意的问题:数据库
一、代理的问题api
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)。浏览器
二、属性编辑的问题app
当你去添加一个点或者一条线的时候,你确定要去为这个点或者这条线输入一些咱们数据库中定义好的属性,官方提供的例子是英文的,后台数据库也是英文的,这个问题就不明显,可是在咱们这种中文环境下使用就会遇到我数据库里是英文的,客户端显示要是中文的这样的问题,想了不少办法效果都不理想,最后发现下面这段代码是能够的工具
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代理
三、编辑时的捕捉功能htm
咱们在ArcGIS Desktop里面编辑的时候,会有捕捉功能,能够让咱们准确的从某个点开始画新的图形,在ArcGIS API for Javascript里面也提供这个功能,具体的代码以下:
map.enableSnapping({snapKey:dojo.keys.copyKey});
好了,不说废话,此次就到这儿了,若是是用于浏览器上的数据编辑,ArcGIS API for Javascript确实比Openlayers强大一些,不过若是是手机端显示就必须是Openlayers了,请看我以前的博文
http://www.cnblogs.com/znlgis/p/3487663.html