17

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

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

4

3 回答 3

15

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

一个小而非常累的例子:

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

我记得如果在地图初始化期间没有设置任何控件,导航控件会自动添加到地图中。因此,您可能必须自己添加导航控件。

希望它有帮助=)

于 2010-09-29T08:42:06.607 回答
10

OpenLayers 3 文档链接

静态方式:

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;
    }
}
于 2015-04-30T11:56:13.403 回答
7

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

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

因此,如果您想关闭所有这些默认行为,另一种选择是在打开图层地图构造函数的选项参数中发送一个空数组,有关详细信息,请参阅链接文本。

于 2011-01-14T08:52:50.480 回答