Включение и выключение MouseWheelZoom


Как переключить функцию масштабирования колесика мыши?

Я знаю, что вы можете установить 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?

1 2

1 ответ:

Mouseweel-это взаимодействие, а не контроль. таким образом, вы всегда можете использовать

interaction.setActive(true), interaction.setActive(false) чтобы переключить взаимодействие.

Начните инициализацию карты следующим образом:

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

Затем, как только ваша карта будет готова, создайте взаимодействие с колесом мыши следующим образом:

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

И затем переключите его:

mouseWheelInt.setActive(!mouseWheelInt.getActive())