我有一个带有ol.interaction.Select的地图,当我要放置一些新对象(一个点)时,将其添加到ol.interaction.Draw中。

现在,一旦我单击创建PointselectInteraction就会触发select事件。由于drawend事件在select事件之前触发,因此我无法确定它是不是真正的select还是因为我正在绘制而发生。

我也尝试过在selectInteraction事件中使用setTimeout激活/禁用drawend,但是没有运气。一旦激活selectInteraction,就会触发select事件。

最佳答案

发生这种情况的原因很可能是单击事件在您单击后的251ms内发生。这是一个已知问题-> check it here。它是通过这种方式构建的,因此可以识别双击。激活两个交互肯定会导致问题。必须有人离开。选择吗?还是抽奖?或两者?因此ol3希望如果将它们都设置为活动状态,则意味着您希望它们都处于活动状态。
drawstart上禁用选择交互,然后在drawend上尝试在drawend事件发生后251ms启用选择交互。像sο:

setTimeout(function(){
selectInteraction.setActive(true)
},300)
;


虽然,这是不好的编程。但是我真的找不到找到克服它的理想方法。

关于javascript - OpenLayers 3:在DrawInteraction之后省略SelectInteraction,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33874760/

10-12 06:42