使用arcgis_js_api4.10绘制,绘制过程中怎么手动完成drawing
arcgis 3.x版本有Draw.finishDrawing()方法可以停止绘制,但4.10没有提供这个方法,试了complete或reset啥的都停止不了,把action的监听"vertex-add","cursor-update"移除了,地图又不能拖动了。求4.10的Draw手动结束/停止方法~~~~
部分代码:
export default function enableDrawing(view,callback,drawType,cancelDrawing) {
let draw = new Draw({ view: view });
//手动完成绘制---这里cancel不了
if (cancelDrawing) {
cancelDrawHandler(draw, view);
} else {
enableCreateGraphic(draw, view, callback, drawType);//开始绘制
}
}
function cancelDrawHandler(draw, view) {
lstntenerHandler();//停止"vertex-add"等监听
draw.complete();//Draw的complete调用
}
function enableCreateGraphic(draw, view, callback, drawType) {
//创建action
action = draw.create(drawType);//, {mode: "click"});
view.focus();
lstn_vertex_add = action.on("vertex-add", onDrawing);
lstn_cursor_update = action.on("cursor-update", onDrawing);
lstn_vertex_remove = action.on("vertex-remove", onDrawing);
lstn_draw_complete = action.on("draw-complete", onDrawing);
........
}
部分代码:
export default function enableDrawing(view,callback,drawType,cancelDrawing) {
let draw = new Draw({ view: view });
//手动完成绘制---这里cancel不了
if (cancelDrawing) {
cancelDrawHandler(draw, view);
} else {
enableCreateGraphic(draw, view, callback, drawType);//开始绘制
}
}
function cancelDrawHandler(draw, view) {
lstntenerHandler();//停止"vertex-add"等监听
draw.complete();//Draw的complete调用
}
function enableCreateGraphic(draw, view, callback, drawType) {
//创建action
action = draw.create(drawType);//, {mode: "click"});
view.focus();
lstn_vertex_add = action.on("vertex-add", onDrawing);
lstn_cursor_update = action.on("cursor-update", onDrawing);
lstn_vertex_remove = action.on("vertex-remove", onDrawing);
lstn_draw_complete = action.on("draw-complete", onDrawing);
........
}
0 个回复