Arcgis for JS之对象捕捉
时间:2022-06-13
本文章向大家介绍Arcgis for JS之对象捕捉,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在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) {
如有疑问请联系:
QQ:1004740957
Email:niujp08@qq.com
- .net和java互操作
- WordPress 路径相关函数总结(三):插件路径相关函数
- 修改WordPress 搜索结果页面url 形式,安全有保障
- C# Enum设计和使用的相关技巧
- 小程序如何利用更低成本获得高流量?
- 使用System.Net.Mail通过gmail发送电子邮件
- 删除 WordPress 导航菜单的多余 CSS 选择器(id或class)
- es6 对象的扩展
- 自定义WordPress 标签云小工具相关参数
- 检查.NET程序平台目标(Platform Target)工具CorFlags
- 哪些行业最适合抢驻小程序?
- WordPress 一键关闭/禁止页面评论功能
- 在一个.net sln中包含多个project,project引用同一个dll导致的错误
- Windows下安装MariaDB
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 悬挂引用是如何被Rust消灭的?
- python小例子(二)
- 面试题系列第1篇:说说==和equals的区别?你的回答可能是错误的
- django-URL转换器(四)
- 【猫狗数据集】加载保存的模型进行测试
- 【猫狗数据集】划分验证集并边训练边验证
- 【猫狗数据集】使用学习率衰减策略并边训练边测试
- 面试题系列第2篇:new String()创建几个对象?有你不知道的
- spring之整合struts2
- django-URL之include函数(五)
- springmvc之使用ModelAttribute避免不允许被修改的值更新时为空
- 【colab pytorch】使用tensorboard可视化
- django-URL别名的作用(六)
- springmvc之如何确定目标方法Pojo类型的参数?
- 【colab pytorch】使用tensorboardcolab可视化