使用Openlayers禁用缩放

Geo*_*eyB 9 zoom mousewheel openlayers

我正在使用OpenLayers在我的网站上显示自定义OSM地图.

我有一点要尊重:地图必须修复(意味着我们无法拖动或缩放它).

我有缩放问题,我无法用鼠标禁用缩放.有人有小费吗?

map = new OpenLayers.Map('map');
map.events.remove("move");
map.events.remove("movestart");
map.events.remove("moveend");
map.events.remove("zoomend");
map.events.remove("mouseover");
map.events.remove("mouseout");
map.events.remove("mousemove");
map.events.remove("zoomstart");
var nav = new OpenLayers.Control.Navigation({
  defaultDblClick: function(event) { return ; }
});
map[index].addControl(nav);
Run Code Online (Sandbox Code Playgroud)

此外,如果有人提示删除所有导航事件比这更容易,将不胜感激.

ton*_*nio 13

通过传递一个空数组来禁用地图上的默认控件:

var map = new OpenLayers.Map('map', { controls: [] });
Run Code Online (Sandbox Code Playgroud)


Tho*_*ban 5

Mahdi的简化方法导致

var i, l, c = map.getControlsBy( "zoomWheelEnabled", true );
for ( i = 0, l = c.length; i < l; i++ ) {
    c[i].disableZoomWheel();
}
Run Code Online (Sandbox Code Playgroud)

这种禁用鼠标滚轮缩放的方法不需要在构建地图时自定义选项,例如无需创建任何控件即可创建地图(尽管Lght对此有所要求)。此外,重新启用缩放功能同样有效。

此外,通过搜索与启用的属性匹配的控件,zoomWheelEnabled而不是与类名匹配的控件,它支持从派生的自定义控件OpenLayers.Control.Navigation


小智 5

对于OpenLayers3,交互数组也需要为空。

var map = new ol.Map({
  controls: [],
  interactions: []
});
Run Code Online (Sandbox Code Playgroud)