Включение и выключение 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 ответ:
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())