OpenLayers:双击时禁用缩放

Ove*_*esh 13 javascript maps openlayers

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

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

Cha*_*hau 15

上双击缩放功能,显然是在一个功能OpenLayers.Control.Navigation控制.有关更多信息,请参阅OpenLayers参考.

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

var Navigation = new OpenLayers.Control.Navigation({
    defaultDblClick: function(event) { return; }
});
Run Code Online (Sandbox Code Playgroud)

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

希望它有帮助=)


VAV*_*VAV 7

OpenLayers 3文档链接.

静态方式:

var map = new ol.Map({
    interactions: ol.interaction.defaults({ doubleClickZoom: false }),
    ...
});
Run Code Online (Sandbox Code Playgroud)

动态方式:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*ell 6

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

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

map.addControl(Navigation);
Run Code Online (Sandbox Code Playgroud)

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

因此,如果要关闭所有这些默认行为,另一个选项是在开放层图构造函数的options参数中发送空数组,请参阅链接文本以获取更多详细信息.