在Draw工具中 draw-end(画图结束后想地图添加图形)
发现第一次添加一个图形,第二次添加两个图形,第三次添加三个图形,依次递增
//新增图形
function addLifeBoundary(){
alert("新增图形");
lifeFeatureLayer.clearSelection();
lifeFeatureLayer.refresh();
drawToolbar.activate(Draw.POLYGON);
lifeFeatureLayer.remove(newGraphic);
drawToolbar.on("draw-complete", addToMap);
//drawToolbar.deactivate();
}
function addToMap(evt) {
var polygonSymbol = new SimpleFillSymbol(
SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color([151, 249, 0, 0.8]),
3
),
new Color([151, 249, 0, 0.45])
);
var newGraphic1 = new Graphic(evt.geometry,polygonSymbol);
lifeFeatureLayer.applyEdits([newGraphic1],null, null);
drawToolbar.finishDrawing();
drawToolbar.deactivate();
map.removeLayer(lifeFeatureLayer);
map.addLayer(lifeFeatureLayer);
event.stop(evt);//停止本次事件(保存的时候容易保存上次的图形,并且依次递增)
}
解决方法就是
添加个event.stop(evt)
event.stop(evt)具体写法
dojo.addOnLoad(function(){
var node = dojo.byId("delete");
dojo.connect(node, "onclick", function(e){
dojo.stopEvent(e); // prevents default link execution
// some code custom execution
});
});
<a href="/delete" id="delete">Delete</a>
上面是禁用事件的方法
另一种方法就是把drawtoolbar 设置成局部变量
顺便记录下禁用图层点击
layer.on("click",function(evt){
event.stop(evt);
});