我有一个带有ol.interaction.Select
的地图,当我要放置一些新对象(一个点)时,将其添加到ol.interaction.Draw
中。
现在,一旦我单击创建Point
,selectInteraction
就会触发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/