2016-07-07 80 views
2

如何切換鼠標滾輪縮放功能?打開和關閉MouseWheel縮放

我知道你可以設置在地圖創建mousewheelzoom默認:

interactions: ol.interaction.defaults({ 
     mouseWheelZoom: false 
    }), 

但是如何更改一次地圖創建即當用戶點擊我要運行的切換鼠標滾輪的例行地圖重新放大?

我知道這是棘手的Openlayers2 - 您通過控制不得不周期:

function PMA_Mapping_Enable_Mouse_Wheel_Zoom(map) { 
//Need to go through all controls - don't know why! 
controls = map.getControlsByClass('OpenLayers.Control.Navigation'); 
for (var i = 0; i < controls.length; ++i) 
    controls[i].enableZoomWheel();}; 

不知道是否有幫助,但認爲我應該包括它。

有人知道如何在openlayers 3中實現這個嗎?

回答

2

Mouseweel是一種交互而不是控件。 因此,您始終可以使用

interaction.setActive(true),interaction.setActive(false)來切換交互。

啓動地圖initialazation像這樣:

......interactions: ol.interaction.defaults({ mouseWheelZoom: false }), .......

然後,一旦你的地圖是準備創建一個像這樣的鼠標滾輪互動:

var mouseWheelInt = new ol.interaction.MouseWheelZoom(); map.addInteraction(mouseWheelInt)

,然後撥動它:

mouseWheelInt.setActive(!mouseWheelInt.getActive())

+0

這好多了 - 現在無需存儲客戶端切換變量!從OL2過渡需要一些習慣 - 這有很大幫助。非常感謝。 –

+0

很高興幫助隊友! – pavlos