2010-09-19 254 views

回答

14

放大雙擊功能顯然是在OpenLayers.Control.Navigation控制功能。有關更多信息,請參閱OpenLayers Reference

一個小而很累例如:

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

我記得如果沒有控件在地圖的初始化過程中設置的導航控制自動添加到地圖中。所以你可能不得不添加導航控件你自己。

希望它可以幫助=)

+1

怎麼能在這個3的OpenLayers做? – Brain 2014-12-18 11:07:25

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

5

OpenLayers 3 Documentation 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; 
    } 
}