http://blog.csdn.net/gisshixisheng/article/details/44098615

在web操作,如绘制或者测量的时候,为了精确,需要捕捉到某一图层的对象,在此,讲解下如何在Arcgis for JS中实现捕捉对象。
首先,在地图中添加一个graphiclayer:

[javascript] view plaincopy print?
  1. gLayer = new GraphicsLayer();
  2. map.addLayer(gLayer);

接着,在gLayer中添加几个对象:

[javascript] view plaincopy print?
  1. map.on("load",function(){
  2. var items = geometry.item;
  3. gLayer.add(new Graphic(WktToPoint(items[0].wkt, {"wkid":4326}),sms));
  4. gLayer.add(new Graphic(WktToPolyline(items[1].wkt, {"wkid":4326}),sls));
  5. gLayer.add(new Graphic(WktToPolygon(items[2].wkt, {"wkid":4326}),sfs));
  6. });

接下来,定义drawtoolbar以及绘制完成后的事件:

[javascript] view plaincopy print?
  1. var drawToolbar = new esri.toolbars.Draw(map,{tooltip: "place text"});
  2. drawToolbar.on("draw-end",showDrawResults);
  3. function showDrawResults(evt){
  4. drawToolbar.deactivate();
  5. map.setMapCursor("default");
  6. var geometry = evt.geometry;
  7. map.graphics.add(new Graphic(geometry,sls));
  8. };

接下来,定义一个Button,并添加button的click事件:

[html] view plaincopy print?
  1. <button id="draw" style="z-index: 99;">绘制图形</button>
[javascript] view plaincopy print?
  1. on(dom.byId("draw"), "click", function(){
  2. drawToolbar.activate(esri.toolbars.Draw.POLYLINE);
  3. });

接下来定义map的捕捉设置:

[javascript] view plaincopy print?
  1. var snapManager = map.enableSnapping({
  2. snapKey:has("mac") ? keys.META : keys.CTRL
  3. });
  4. var layerInfos = [{layer: gLayer}];
  5. snapManager.setLayerInfos(layerInfos);

备注:

此处,需要调用的dojo包包括:

[javascript] view plaincopy print?
  1. require([
  2. "esri/map",
  3. "esri/layers/GraphicsLayer",
  4. "esri/graphic",
  5. "esri/SnappingManager",
  6. "esri/sniff",
  7. "dojo/_base/event",
  8. "dojo/on",
  9. "dojo/dom",
  10. "dojo/keys",
  11. "dojo/domReady!"],
  12. function(Map, GraphicsLayer, Graphic, Point, SnappingManager, has,
  13. event, on,dom, keys) {

转载于:https://www.cnblogs.com/telwanggs/p/6973006.html

(转)Arcgis for JS之对象捕捉相关推荐

  1. Arcgis for JS之对象捕捉

    在web操作,如绘制或者测量的时候,为了精确,需要捕捉到某一图层的对象,在此,讲解下如何在Arcgis for JS中实现捕捉对象. 首先,在地图中添加一个graphiclayer: gLayer = ...

  2. (转)Arcgis for Js之鼠标经过显示对象名的实现

    http://blog.csdn.net/gisshixisheng/article/details/41889345 在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来 ...

  3. arcgis for js 4.X自定义气泡点击地图对象弹出对话框

    题目的意思是,arcgis for js 4.X自定义气泡,点击地图对象弹出对话框,而不是弹出气泡.对话框是vue页面组成的自定义对话框,不是地图页面的对象. 基本思路: 1)气泡模板(PopupTe ...

  4. Arcgis for JS之Cluster聚类分析的实现

    原文:Arcgis for JS之Cluster聚类分析的实现 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来 的,包含XY坐标信息的,通过graphic和graphicla ...

  5. Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法

    将ARCGIS for Js API中绘制各种图形的方法进行封装,方便调用.用时只需要传入参数既可.(在js文件中进行封装定义): 1.新建js文件,新建空对象用于函数的定义 if (!this[&q ...

  6. (转) 基于Arcgis for Js的web GIS数据在线采集简介

    http://blog.csdn.net/gisshixisheng/article/details/44310765 在前一篇博文"Arcgis for js之WKT和geometry转换 ...

  7. (转) Arcgis for js之WKT和GEOMETRY的相互转换

    http://blog.csdn.net/gisshixisheng/article/details/44057453 1.wkt简介 WKT(Well-known text)是一种文本标记语言,用于 ...

  8. (转)Arcgis for JS之Cluster聚类分析的实现

    http://blog.csdn.net/gisshixisheng/article/details/40711075 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来的,包含 ...

  9. arcgis api js调用天地图

    在arcgis api for js中仅有的basemap有"streets" , "satellite" , "hybrid", &quo ...

最新文章

  1. 怎么申请 bing api key
  2. [译]Node v5.0.0 (Stable)
  3. 3 ie兼容 vue_前端开发:MVVM框架之Vue势必会取代JQuery吗?
  4. sql服务器默认密码_搭建一个DNS服务器,轻松实现域名解析内容分发,访问速度提高N倍...
  5. flash物理引擎应用:你的第一个Fisix应用程序
  6. JD_Source Code for problem 1379
  7. 【数据结构】堆的手动模拟实现
  8. Codevs_P1907HDU_P1565 方格取数3(最大流)
  9. 笔记本启动显示0xc000014c错误--提示缺失win10/system32内部文件
  10. PAT编程(python) 1004 成绩排名
  11. 华为南研所校招软件技术岗几点建议
  12. 看了这篇干货,再也不怕Mac内存不足了!
  13. Tomcat错误页重定向
  14. 【Other】希腊诸神大全-中英文名称
  15. grep,sed,awk练习
  16. [Python] 反转链表相关技巧
  17. 华为magicbook电脑看久了眼睛累的问题
  18. 2020年网络推广方案怎么做?
  19. 关于联想收购 IBM 的 PC 部门。
  20. mysql事务及其实现原理--MVCC--二阶段提交

热门文章

  1. Spark源码分析之Job触发原理
  2. 电脑硬盘为什么叫计算机,电脑分区为何从C盘开始?
  3. 利用MMCM IP核产生用户时钟
  4. 基于FPGA实现DAC8811接口(正弦波)
  5. 19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0
  6. 14013.petalinux操作GPIO
  7. linux中split函数用法,Linux split命令参数及使用方法详解
  8. python算法应用(六)——搜索与排名2(PageRank算法及其拓展应用)
  9. 数据结构之遍历二叉树
  10. Linux C语言操作SQLite数据库