打开和关闭MouseWheelZoom

时间:2016-07-07 08:24:10

标签: openlayers-3

如何切换鼠标滚轮缩放功能?

我知道你可以在创建地图时设置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 个答案:

答案 0 :(得分:4)

Mouseweel是一种互动而非对照。 所以,你总是可以使用

interaction.setActive(true)interaction.setActive(false)切换互动。

像这样开始你的地图初始化:

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

然后,一旦你的地图准备好,就像这样创建mouseWheel交互:

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

然后切换它:

mouseWheelInt.setActive(!mouseWheelInt.getActive())