Openlayers 3 打开和关闭鼠标滚轮缩放

Openlayers 3 打开和关闭鼠标滚轮缩放,openlayers-3,Openlayers 3,如何切换鼠标滚轮缩放功能 我知道您可以在创建地图时设置鼠标滚轮缩放默认值: interactions: ol.interaction.defaults({ mouseWheelZoom: false }), 但是,一旦创建了地图,即当用户单击地图时,我要运行一个例程来重新打开鼠标滚轮缩放,我该如何更改它 我知道这在Openlayers2中很棘手-您必须循环浏览控件: function PMA_Mapping_Enable_Mouse_Wheel_Zoom(map

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

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

    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();};
功能PMA\u映射\u启用\u鼠标\u滚轮\u缩放(映射){
//需要通过所有的控制-不知道为什么!
controls=map.getControlsByClass('OpenLayers.Control.Navigation');
对于(变量i=0;i
不知道这是否有帮助,但认为我应该包括它


有人知道如何在openlayers 3中实现这一点吗?

Mouseweel是一种交互而不是控件。 因此,您可以始终使用

interaction.setActive(true)
interaction.setActive(false)
切换交互

开始地图初始化,如下所示:

…交互:ol.interaction.defaults({
鼠标滚轮缩放:错误
}),….

然后,在地图准备就绪后,创建鼠标滚轮交互,如下所示:

var mouseweellint=new ol.interaction.mouseweelZoom();
map.addInteraction(mouseweellint)

然后切换它:


mouseweelint.setActive(!mouseweelint.getActive())

这样更好-现在也不需要存储客户端切换变量!从OL2过渡需要一些时间来适应-这非常有帮助。非常感谢。很高兴能帮上忙,伙计!