【问题标题】:Turning MouseWheelZoom on and off打开和关闭 MouseWheelZoom
【发布时间】:2016-07-07 08:24:10
【问题描述】:

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

我知道您可以在地图创建时设置鼠标滚轮缩放默认值:

    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 中实现这一点?

【问题讨论】:

    标签: openlayers-3


    【解决方案1】:

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

    【讨论】:

    • 这样好多了——现在也不需要存储客户端切换变量了!从 OL2 过渡需要一些时间来适应 - 这很有帮助。非常感谢。
    • 很高兴能帮助交配!
    猜你喜欢
    • 2013-05-06
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2011-08-09
    相关资源
    最近更新 更多