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

时间:2023-02-05 21:45:56

最近工作上需要用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的地图编辑工具的更多相关文章

  1. 基于ArcGIS API for JavaScript的统计图表实现

    感谢原作者分享:https://github.com/shevchenhe/ChartLayer,在使用的过程中,需要自己进行调试修改,主要还是_draw函数,不同的ArcGIS JS API函数有差 ...

  2. arcgis api for javascript 3.16开发(一)

    原来一直都在用Flex开发arcgis的地图接口,用的时间很长,用的习惯也顺手,可Flex这个开发工具已经基本要淘汰了,并且地图借助flash的方式加载在浏览器里已经不能适应webgis的快速开发需求 ...

  3. ArcGIS API for JavaScript介绍

    ArcGIS API for JavaScript中的类是按照模块组织的,主要包含esri.esri/geometry.esri/renderers.esri/symbols.esri/symbols ...

  4. ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录

    放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...

  5. ArcGIS API for JavaScript开发初探——HelloMap

    1.前言 在开始ArcGIS API for JavaScript开发之前我们需要了解一些基本的知识: 1.开发工具选什么? 前端技术的开发工具选择是一个仁者见仁智者见智的问题,有人喜欢Hbuilde ...

  6. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  7. ArcGIS API for Javascript 使用缓冲区结果做query查询出现“esri.config.defaults.io.proxyUrl 尚未进行设置”错误

    1.前言 在研究ArcGIS API for JavaScript时会遇到这样的问题,比如我们在做缓冲区分析时,用分析的范围作为空间查询query的参数,在执行结果中总是会看到“esri.config ...

  8. ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

    1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...

  9. ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

    内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...

随机推荐

  1. 28个你必须知道的HTML5的新特性,技巧以及技术

    崭新新的页面布局 传统的: HTML5: 1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<f ...

  2. 关于scrollbar-face-color只支持ie的解决办法!

    关于scrollbar-face-color只支持ie的解决方法!!今天突然有人问我滚动条css自定义的方法,我发现用scrollbar-base-color这种方法只有ie支持,查了半天资料总结如下 ...

  3. git学习笔记总结

    git试免费的开源的分布式版本控制系统,github是一个用git做版本控制的项目托管平台.说白了git就是帮忙你管理你开发的代码,代码每次修改的历史,多人更好的一起开发项目. 分布式版本控制系统,每 ...

  4. mysql之group&lowbar;concat函数详解

    函数语法: group_concat( [DISTINCT]  要连接的字段   [Order BY 排序字段 ASC/DESC]   [Separator '分隔符'] ) 下面举例说明: sele ...

  5. 在JavaScript 自定义对象来模拟Java中的Map

    直接看代码: //模拟一个Map对象 function Map(){ //声明一个容器 var container={}; //定义一个put方法,向容器中存值 this.put=function(k ...

  6. C&num;基础知识点

    一.方法(结构.数组.冒泡排序.3个参数重载) 1将string转换为int类型 Convert.ToInt32(); int.Parse() ; int.TryParse()三种方式. 2 结构:可 ...

  7. hadoop如何计算map数和reduce数(未读)

    http://blog.csdn.net/lpxuan151009/article/details/7937821

  8. Android应用开发之(通过ClipboardManager&comma; ClipData进行复制粘贴)

    在开发一些系统应用的时候,我们会用到Android的剪贴板功能,比如将文本文件.或者其他格式的内容复制到剪贴板或者从剪贴板获取数据等操作.Android平台中每个常规的应用运行在自己的进程空间中,相对 ...

  9. 样式的操作-访问外部定义的css样式

    JS对css的控制力非常强,甚至可以控制外部定义的css样式 ———————————————————————— <style>            .myclass{           ...

  10. 对比MFC和Winform及WPF

    MFC 生成本机代码,自然是很快.可是,消息循环,减缓了界面显示速度.winform 封装了 win32 的api,多次进行P/invoke 操作 (大部分使用p/invoke操作封装),速度慢 .w ...