簡體   English   中英

OpenLayers:雙擊時禁用縮放

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM