[英]OpenLayers: disable zooming on double-click
默認情況下,OpenLayers會在用戶雙擊地圖時放大。
禁用此行為的最佳方法是什么?
雙擊放大功能顯然是OpenLayers.Control.Navigation
控件中的一項功能。 有關更多信息,請參閱OpenLayers參考 。
一個小而非常疲憊的例子:
var Navigation = new OpenLayers.Control.Navigation({
defaultDblClick: function(event) { return; }
});
我記得如果在初始化映射期間沒有設置控件, 導航控件會自動添加到地圖中。 所以你可能不得不自己添加導航控件。
希望它有幫助=)
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;
}
}
上面的答案是正確的,但您必須將此控件顯式添加到地圖以覆蓋默認的導航控件,即,
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參數中發送空數組,有關詳細信息,請參閱鏈接文本 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.