绘制一个特征和停用绘制交互
Draw one feature and deactive draw interaction
我正在使用绘图交互开发绘图工具。当用户完成绘制一个对象时,应该停用绘制交互。我在“drawend”事件中尝试使用 setActive(false)。但随后似乎绘制交互被过早取消。例如,如果双击完成绘图,就会触发缩放交互。
我的解决方法是设置超时,如下所示:
drawTool = new ol.interaction.Draw({
features: drawOverlay.getFeatures(),
type: activeTool,
style: style
});
drawTool.on('drawend', function(e) {
setTimeout(function(){drawTool.setActive(false);},100);
});
有没有更好的方法?
试试这个方法:
source.on('addfeature', function(evt){
drawTool.setActive(false);
});
如果您需要检查添加的功能是否来自绘图交互,那么您需要更多代码。如果您遇到这种情况,请告诉我。
显然这个问题已经在 ol3 中作为 issue 概述了。时间延迟似乎是当前的解决方法。
我正在使用绘图交互开发绘图工具。当用户完成绘制一个对象时,应该停用绘制交互。我在“drawend”事件中尝试使用 setActive(false)。但随后似乎绘制交互被过早取消。例如,如果双击完成绘图,就会触发缩放交互。 我的解决方法是设置超时,如下所示:
drawTool = new ol.interaction.Draw({
features: drawOverlay.getFeatures(),
type: activeTool,
style: style
});
drawTool.on('drawend', function(e) {
setTimeout(function(){drawTool.setActive(false);},100);
});
有没有更好的方法?
试试这个方法:
source.on('addfeature', function(evt){
drawTool.setActive(false);
});
如果您需要检查添加的功能是否来自绘图交互,那么您需要更多代码。如果您遇到这种情况,请告诉我。
显然这个问题已经在 ol3 中作为 issue 概述了。时间延迟似乎是当前的解决方法。