绘制一个特征和无效绘制交互

时间:2015-07-01 14:51:21

标签: openlayers-3

我正在使用绘图交互的绘图工具。当用户完成绘制一个对象时,应该停用绘制交互。我在'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);
});

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

尝试这种方式:

source.on('addfeature', function(evt){
    drawTool.setActive(false);
});

如果您需要检查添加的功能是否来自绘制交互,那么您需要更多代码。如果这是你的情况,请告诉我。

答案 1 :(得分:0)

显然问题已经在ol3中列为issue。时间延迟似乎是当前的解决方法。