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)
我记得如果在初始化映射期间没有设置控件,导航控件会自动添加到地图中.所以你可能不得不自己添加导航控件.
希望它有帮助=)
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)
上面的答案是正确的,但您必须将此控件显式添加到地图以覆盖默认的导航控件,即,
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参数中发送空数组,请参阅链接文本以获取更多详细信息.