基于ArcGIS API for Javascript的地图编辑工具
最近工作上需要用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的地图编辑工具的更多相关文章
- 基于ArcGIS API for JavaScript的统计图表实现
感谢原作者分享:https://github.com/shevchenhe/ChartLayer,在使用的过程中,需要自己进行调试修改,主要还是_draw函数,不同的ArcGIS JS API函数有差 ...
- arcgis api for javascript 3.16开发(一)
原来一直都在用Flex开发arcgis的地图接口,用的时间很长,用的习惯也顺手,可Flex这个开发工具已经基本要淘汰了,并且地图借助flash的方式加载在浏览器里已经不能适应webgis的快速开发需求 ...
- ArcGIS API for JavaScript介绍
ArcGIS API for JavaScript中的类是按照模块组织的,主要包含esri.esri/geometry.esri/renderers.esri/symbols.esri/symbols ...
- ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...
- ArcGIS API for JavaScript开发初探——HelloMap
1.前言 在开始ArcGIS API for JavaScript开发之前我们需要了解一些基本的知识: 1.开发工具选什么? 前端技术的开发工具选择是一个仁者见仁智者见智的问题,有人喜欢Hbuilde ...
- ArcGIS API for JavaScript开发初探——基础知识
1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...
- ArcGIS API for Javascript 使用缓冲区结果做query查询出现“esri.config.defaults.io.proxyUrl 尚未进行设置”错误
1.前言 在研究ArcGIS API for JavaScript时会遇到这样的问题,比如我们在做缓冲区分析时,用分析的范围作为空间查询query的参数,在执行结果中总是会看到“esri.config ...
- ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务
1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...
- ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译
内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...
随机推荐
- [示例] Firemonkey OnTouch 多点触控应用
说明:Firemonkey OnTouch 多点触控应用,可同时多指移动多个不同控件 原码下载:[原创]TestMultitouchMove_多点触控应用_by_Aone.zip 运行展示:
- 【转】MVC、MVP与MVT
MVC是Model-View-Control的缩写,Model指的是数据层,View指的是UI层,Control指的是控制层,这三层之间彼此联系.View层的用户行为,触发Control层,Contr ...
- C/C++ Memory Layout
参考 http://www.cnblogs.com/skynet/archive/2011/03/07/1975479.html
- Atitit.软件兼容性原理与实践 v5 qa2.docx
Atitit.软件兼容性原理与实践 v5 qa2.docx 1. Keyword2 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法,新人新办法,只新增,少修改 ...
- Visual Studio2015 常用快捷键
项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
按照官网提供的订阅型写法( Retrieving Messages By Subscription ("push API")) 我发现,RabbitMQ服务器会在短时间内发送大量的 ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- SSH面试题(struts2+Spring+hibernate)
struts2 + Spring +hibernate Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory ...
- SQL连接操作符介绍(循环嵌套, 哈希匹配和合并连接)
今天我将介绍在SQLServer 中的三种连接操作符类型,分别是:循环嵌套.哈希匹配和合并连接.主要对这三种连接的不同.复杂度用范例的形式一一介绍. 本文中使用了示例数据库AdventureWorks ...
- MySQL 导出数据
MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中我们将数据表 cnbl ...