Arcgis for JS之對象捕捉
來源:程序員人生 發布時間:2015-08-25 08:54:56 閱讀次數:5946次
在web操作,如繪制或丈量的時候,為了精確,需要捕捉到某1圖層的對象,在此,講授下如何在Arcgis for JS中實現捕捉對象。
首先,在地圖中添加1個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));
};
接下來,定義1個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
請關注微信公眾賬號lzugis15,隨時了解更多GIS動態信息。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈