zoukankan      html  css  js  c++  java
  • (转)Arcgis for JS之对象捕捉

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

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

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

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

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

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

    [javascript] view plain copy
     
     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 plain copy
     
     print?
      1. require([  
      2.     "esri/map",  
      3.     "esri/layers/GraphicsLayer",  
      4.     "esri/graphic",  
      5.     "esri/SnappingManager",  
      6.     "esri/sniff",  
      7.   
      8.     "dojo/_base/event",  
      9.     "dojo/on",  
      10.     "dojo/dom",  
      11.     "dojo/keys",  
      12.     "dojo/domReady!"],  
      13. function(Map, GraphicsLayer, Graphic, Point, SnappingManager, has,  
      14.          event, on,dom, keys) {  
  • 相关阅读:
    【Java123】enum枚举及其应用
    sql查询优化_慢查询
    9.4 如何实现属性可修改的函数装饰器?
    9.2 如何为被装饰的函数保存元数据?
    python的如何通过实例方法名字的字符串调用方法?
    9.1 如何使用函数装饰器 用装饰器解决重复计算问题
    asyncio 笔记
    python笔记截图
    list绑定
    表单数据交互
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6973006.html
Copyright © 2011-2022 走看看