如何抑制“单击”#39;事件在openlayers 3中绘制地图时

时间:2017-03-10 07:39:21

标签: javascript events event-handling openlayers openlayers-3

我正在使用openlayers 3.20.0。以下链接将向您展示一个小例子。

click-here.(在示例中,请参阅日志控制台)

我有一个地图对象

this.map = new ol.Map({
    layers : [ somelayer ],
    target : 'map',
    view : new ol.View({
        center : [ -11000000, 4600000 ],
        zoom : 4
    })
});

我已附上' singleclick '和' dblclick '在地图上。

我也在地图上绘制了互动,如下所示

this.draw = new ol.interaction.Draw({
    features : features,
    type : "Point"
});

发出' drawstart '和' drawend '事件

但是当我们提出一个观点时,它会发出“单击”字样。地图上的活动也是。我们怎样才能防止这种情况发生不发生声音的问题。画画时。

我知道我们可以删除' singleclick'绘图时的事件监听器,但我不想删除监听器并再次添加。

是否有其他方法可以抑制此事件。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我用unByKey方法解决了这个问题。每个map.on方法都返回一个唯一键。您可以使用map.unByKey(singleclick_key)来停止单击事件。您可以在更长时间内完成绘图后对其进行初始化。

所以,你正在寻找这样的东西:

var singleclick_key= map.on('singleclick', function(evt){
//statements
}

您可以使用以下命令删除此事件:

map.unByKey(singleclick_key);