(转)Arcgis for JS之对象捕捉
http://blog.csdn.net/gisshixisheng/article/details/44098615
在web操作,如绘制或者测量的时候,为了精确,需要捕捉到某一图层的对象,在此,讲解下如何在Arcgis for JS中实现捕捉对象。
首先,在地图中添加一个graphiclayer:
- gLayer = new GraphicsLayer();
- map.addLayer(gLayer);
接着,在gLayer中添加几个对象:
- 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以及绘制完成后的事件:
- 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事件:
- <button id="draw" style="z-index: 99;">绘制图形</button>
- on(dom.byId("draw"), "click", function(){
- drawToolbar.activate(esri.toolbars.Draw.POLYLINE);
- });
接下来定义map的捕捉设置:
- var snapManager = map.enableSnapping({
- snapKey:has("mac") ? keys.META : keys.CTRL
- });
- var layerInfos = [{layer: gLayer}];
- snapManager.setLayerInfos(layerInfos);
备注:
此处,需要调用的dojo包包括:
- 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) {
(转)Arcgis for JS之对象捕捉的更多相关文章
- Arcgis for Js之鼠标经过显示对象名的实现
在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来说是很实用的,本文讲述在Arcgis for Js中,用两种不同的方式来实现该效果. 为了有个直观的概念,先给大家看看实 ...
- (转)Arcgis for Js之鼠标经过显示对象名的实现
http://blog.csdn.net/gisshixisheng/article/details/41889345 在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来 ...
- Arcgis for JS之Cluster聚类分析的实现(基于区域范围的)
原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲 ...
- Arcgis for JS之Cluster聚类分析的实现
原文:Arcgis for JS之Cluster聚类分析的实现 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来 的,包含XY坐标信息的,通过graphic和graphicla ...
- Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- arcgis for js学习之Draw类
arcgis for js学习之Draw类 <!DOCTYPE html> <html> <head> <meta http-equiv="Cont ...
- arcgis for js学习之Graphic类
arcgis for js学习之Graphic类 <title>Graphic类</title> <meta charset="utf-8" /> ...
- (转) 基于Arcgis for Js的web GIS数据在线采集简介
http://blog.csdn.net/gisshixisheng/article/details/44310765 在前一篇博文“Arcgis for js之WKT和geometry转换”中实现了 ...
- (转) Arcgis for js之WKT和GEOMETRY的相互转换
http://blog.csdn.net/gisshixisheng/article/details/44057453 1.wkt简介 WKT(Well-known text)是一种文本标记语言,用于 ...
随机推荐
- [POJ1226]Substrings(后缀数组)
传送门 给定 n 个字符串,求出现或反转后出现在每个字符串中的最长子串. 算法分析: 这题不同的地方在于要判断是否在反转后的字符串中出现.其实这并没有加大题目的难度. 只需要先将每个字符串都反过来写一 ...
- noip模拟赛 浮游大陆的68号岛
题目描述 妖精仓库里生活着黄金妖精们,她们过着快乐,却随时准备着迎接死亡的生活. 换用更高尚的说法,是随时准备着为这个无药可救的世界献身. 然而孩子们的生活却总是无忧无虑的,幼体的黄金妖精们过着天真烂 ...
- F - Goldbach`s Conjecture kuangbin 基础数论
Goldbach's conjecture is one of the oldest unsolved problems in number theory and in all of mathemat ...
- S - Best Reward 扩展KMP
After an uphill battle, General Li won a great victory. Now the head of state decide to reward him w ...
- python中 __new__和__init__
python这两个函数和类的实例化有关. __init__是实例化完成之后调用的,会对生成的对象实例做一些修饰 __new__是python新类型才有的,它更像是c/c++里面的构造函数,因为这个函数 ...
- HDU 4526
DP. 设状态dp[i][j]表示j辆车后还剩余i个人的花费,枚举一个车的座位k,加上剩下人数i,注意i+k不能超过n,就很容易dp了. #include <iostream> #incl ...
- jQuery Validate Ajax 验证
jQuery Validate Ajax 验证 <script type="text/javascript"> $(function() { $('#formCityL ...
- 全部对于Unity3D中 NGUI 触发事件的监听方法
NGUI事件的种类非常多.比方点击.双击.拖动.滑动等等,他们处理事件的原理差点儿万全一样,本文仅仅用button来举例. 方法一.直接监听事件 把以下脚本直接绑定在button上.当button点击 ...
- UVa 642 - Word Amalgamation
题目:给你一个单词列表.再给你一些新的单词.输出列表中又一次排列能得到此新单词的词. 分析:字符串.对每一个字符串的字母排序生成新的传f(str).总体排序,用二分来查找就可以. 说明:注意输出要满足 ...
- 使用Memcached改进Java企业级应用性能:架构和设置
Memcached由Danga Interactive开发.用来提升LiveJournal.com站点性能. Memcached分布式架构支持众多的社交网络应用,Twitter.Facebook还有W ...