arcgis for javascriptの絵は終わって複数の図形の問題を添加します.

1660 ワード

Drawツールの中でdraw-end(絵が終わったら地図に図形を追加したいです)
最初に図を追加すると、2番目に2つの図が追加され、3番目に3つの図が追加され、順番にインクリメントされます.
//    
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);
});