默认情况下,OpenLayers会在用户双击地图时放大。
禁用此行为的最佳方法是什么?
答案 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;
}
}