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

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

  1. gLayer = new GraphicsLayer();
  2. map.addLayer(gLayer);

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

  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以及绘制完成后的事件:

  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事件:

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

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

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

备注:

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

    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) {

(转)Arcgis for JS之对象捕捉的更多相关文章

  1. Arcgis for Js之鼠标经过显示对象名的实现

    在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来说是很实用的,本文讲述在Arcgis for Js中,用两种不同的方式来实现该效果. 为了有个直观的概念,先给大家看看实 ...

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

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

  3. Arcgis for JS之Cluster聚类分析的实现(基于区域范围的)

    原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲 ...

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

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

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

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  6. arcgis for js学习之Draw类

    arcgis for js学习之Draw类 <!DOCTYPE html> <html> <head> <meta http-equiv="Cont ...

  7. arcgis for js学习之Graphic类

    arcgis for js学习之Graphic类 <title>Graphic类</title> <meta charset="utf-8" /> ...

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

    http://blog.csdn.net/gisshixisheng/article/details/44310765 在前一篇博文“Arcgis for js之WKT和geometry转换”中实现了 ...

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

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

随机推荐

  1. selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码

    目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...

  2. 【CodeCraft-19 and Codeforces Round #537 (Div. 2) C】Creative Snap

    [链接] 我是链接,点我呀:) [题意] 横坐标1..2^n对应着2^n个复仇者的基地,上面有k个复仇者(位置依次给出). 你是灭霸你要用以下方法消灭这k个复仇者: 一开始你获取整个区间[1..2^n ...

  3. Dubbo学习总结(2)——Dubbo架构详解

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  4. RSAROLL

    题目:http://www.shiyanbar.com/ctf/1918 # -*- coding: utf-8 -*- import gmpy2 ciper = [704796792, 752211 ...

  5. 如何拿CSDN博客上的原图

    比如带水印的地址: http://img.blog.csdn.net/20140408122234546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdT ...

  6. dba 和 rdba 转载

    一.  DB(Data block)   A data block is the smallest unit of storage in an Oracle database. Every datab ...

  7. git tag打标签常用命令

    # 创建轻量标签$ git tag v0.1.2-light 切换到标签 与切换分支命令相同,用git checkout [tagname]查看标签信息用git show命令可以查看标签的版本信息:$ ...

  8. linux中shell命令test用法和举例

    shell test命令 和 [ 是同一个命令的不同名称. 原文:http://www.cnblogs.com/Jeff-Tang/p/5776947.html ------------------- ...

  9. ubuntu使用ssh连接远程电脑的方法

    目前,大多数linux distributions都预先安装了ssh的客户端,即可以连接别人的电脑.但也有例外的情况,所以,下面先把ssh的客户端与服务端的安装一并讲了吧. ssh客户端及服务端的安装 ...

  10. word2vec和word embedding有什么区别?

    word2vec和word embedding有什么区别? 我知道这两个都能将词向量化,但有什么区别?这两个术语的中文是什么? from: https://www.zhihu.com/question ...