OpenLayers:双击时禁用缩放

时间:2010-09-19 21:11:28

标签: javascript maps openlayers

默认情况下,OpenLayers会在用户双击地图时放大。

禁用此行为的最佳方法是什么?

3 个答案:

答案 0 :(得分:15)

缩放双击功能显然是OpenLayers.Control.Navigation控件中的一项功能。有关详细信息,请参阅OpenLayers Reference

一个小而非常疲惫的例子:

var Navigation = new OpenLayers.Control.Navigation({
    defaultDblClick: function(event) { return; }
});

我记得如果在地图初始化期间没有设置控件, Navigation 控件会自动添加到地图中。所以你可能需要自己添加导航控件。

希望有帮助=)

答案 1 :(得分:6)

上面的答案是正确的,但您必须将此控件显式添加到地图以覆盖默认的导航控件,即

var Navigation = new OpenLayers.Control.Navigation({
  defaultDblClick: function(event) { return; }
});

map.addControl(Navigation);

默认情况下,以下控件添加到OpenLayers.Map: OpenLayers.Control.Navigation, OpenLayers.Control.PanZoom, OpenLayers.Control.ArgParser, OpenLayers.Control.Attribution

如果要关闭所有这些默认行为,另一个选择是在开放图层地图构造函数的options参数中发送一个空数组,有关详细信息,请参阅link text

答案 2 :(得分:6)

OpenLayers 3文档Link

静态方式:

var map = new ol.Map({
    interactions: ol.interaction.defaults({ doubleClickZoom: false }),
    ...
});

动态方式:

var interactions = map.getInteractions();
for (var i = 0; i < interactions.getLength(); i++) {
    var interaction = interactions.item(i);                          
    if (interaction instanceof ol.interaction.DoubleClickZoom) {
        map.removeInteraction(interaction);
        break;
    }
}