最近工作上需要用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. Java编程里的类和对象

    像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...

  2. 跨平台日志清理工具 Log-Cutter v2.0.1 正式发布

    Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...

  3. 调试关于Hibernate的程序遇到的问题

    最怕的就是初学一些东西,低级的错误犯了又犯,现在总结出来以便以后不要再犯类似的错误. 一.Hibernate的延迟加载机制 在用hibernate底层访问数据库的过程忽略了延迟加载机制导致 在访问时候 ...

  4. JqueryDataTable的使用(.Net平台)

    上一篇随笔提到了MvcPager,最近用到了一款前端JQ插件------DataTable(简称DT),很好用. DT是一款前端插件,和后端完全分离开,就这点来看,我就特别喜欢. 一.使用DT,需要以 ...

  5. 转载:android自定义view实战(温度控制表)!

    效果图 package cn.ljuns.temperature.view; import com.example.mvp.R; import android.content.Context;impo ...

  6. Graphviz绘制百家争鸣图

    最近读易中天<先秦诸子百家>,一边读一边在纸上画出逻辑关系,图越来越复杂,趁中午休息索性就把图用Graphviz重新绘制了一下;由于Graphviz主动承担了绘图排版的职责,我只需要关注内 ...

  7. 初识hive

    由facebook 开源用以帮用户解决海量数据etl,构建于hadoop的 数据仓库. 使用hql作为查询接口 使用hdfs作为底层存储 使用mr作为执行层   1.为什么使用hive?      1 ...

  8. pscp工具上传或取回文件、文件夹

    1.把服务器上的/root/dir目录取回本地"C:\My Documents\data\"目录 C:\>pscp.exe -r root@IP:/root/dir &quo ...

  9. Oracle Connect by与递归with

    层次查询 select * from emp; select empno, ename, job, mgr, sal, deptno,level lv, sys_connect_by_path(ena ...

  10. .net core ClaimsPrincipal Class

    hClaimsPrincipal Class ttps://msdn.microsoft.com/en-us/library/system.identitymodel.services.claimsp ...