前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arcgis for JS之对象捕捉

Arcgis for JS之对象捕捉

作者头像
lzugis
发布2018-10-23 15:19:00
2.4K0
发布2018-10-23 15:19:00
举报

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

代码语言:javascript
复制
            gLayer = new GraphicsLayer();
            map.addLayer(gLayer);

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

代码语言:javascript
复制
            map.on("load",function(){
                var items = geometry.item;
                gLayer.add(new Graphic(WktToPoint(items[0].wkt, {"wkid":4326}),sms));
                gLayer.add(new Graphic(WktToPolyline(items[1].wkt, {"wkid":4326}),sls));
                gLayer.add(new Graphic(WktToPolygon(items[2].wkt, {"wkid":4326}),sfs));
            });

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

代码语言:javascript
复制
            var drawToolbar = new esri.toolbars.Draw(map,{tooltip: "place text"});
            drawToolbar.on("draw-end",showDrawResults);
            function showDrawResults(evt){
                drawToolbar.deactivate();
                map.setMapCursor("default");
                var geometry = evt.geometry;
                map.graphics.add(new Graphic(geometry,sls));
            };

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

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

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

代码语言:javascript
复制
            var snapManager = map.enableSnapping({
                snapKey:has("mac") ? keys.META : keys.CTRL
            });
            var layerInfos = [{layer: gLayer}];
            snapManager.setLayerInfos(layerInfos);

备注:

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

代码语言:javascript
复制
        require([
            "esri/map",
            "esri/layers/GraphicsLayer",
            "esri/graphic",
            "esri/SnappingManager",
            "esri/sniff",

            "dojo/_base/event",
            "dojo/on",
            "dojo/dom",
            "dojo/keys",
            "dojo/domReady!"],
        function(Map, GraphicsLayer, Graphic, Point, SnappingManager, has,
                 event, on,dom, keys) {

如有疑问请联系:

QQ:1004740957

Email:niujp08@qq.com

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年03月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档