2016-07-07 12 views
2

Wie kann ich die Mausrad-Zoomfunktion umschalten?MouseWheelZoom ein- und ausschalten

Ich weiß, dass Sie die mousewheelzoom Standard bei Kartenerstellung festlegen:

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

Aber wie kann ich es ändern, sobald die Karte also erstellt wird, wenn der Benutzer die Karte klickt Ich möchte eine Routine ausgeführt, die Mausrad-Schalter zurückzoomen?

Ich weiß, das in Openlayers2 heikel war - Sie, um durch die Kontrollen hatten:

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();}; 

Sie wissen nicht, ob das hilft, aber dachte, ich sollte es enthalten.

Kann jemand das in openlayers 3 erreichen?

Antwort

2

Mouseweel ist eine Interaktion keine Kontrolle. so können Sie immer die

interaction.setActive(true), interaction.setActive(false) verwenden, um die Interaktion umzuschalten.

Ihre Karte initialazation starten wie folgt:

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

Dann, wenn Sie Ihre Karte bereit ist, wie so das Mausrad Interaktion erstellen:

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

und dann Toggle es:

mouseWheelInt.setActive(!mouseWheelInt.getActive())

+0

Das ist viel besser - Sie müssen jetzt auch keine clientseitige Umschaltvariable speichern! Der Übergang von OL2 ist etwas gewöhnungsbedürftig - das hilft sehr. Danke vielmals. –

+0

froh zu helfen, Kumpel! – pavlos

Verwandte Themen