首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Openlayers禁用缩放

用Openlayers禁用缩放
EN

Stack Overflow用户
提问于 2012-09-11 09:23:46
回答 6查看 14.6K关注 0票数 10

我使用OpenLayers在我的网站上显示定制的OSM地图。

我有一些值得尊敬的地方:地图必须是固定的(这意味着我们不能拖动它或缩放它)。

我对变焦有问题,我不能用鼠标来禁用缩放。有人有小费吗?

代码语言:javascript
运行
复制
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);

此外,如果有人有一个提示来删除所有导航事件比这更容易,这将是非常感谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-11 09:37:09

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

代码语言:javascript
运行
复制
var map = new OpenLayers.Map('map', { controls: [] });
票数 17
EN

Stack Overflow用户

发布于 2015-02-13 13:35:13

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

代码语言:javascript
运行
复制
var map = new ol.Map({
  controls: [],
  interactions: []
});
票数 11
EN

Stack Overflow用户

发布于 2014-07-03 22:50:48

Mahdi方法的简化结果

代码语言:javascript
运行
复制
var i, l, c = map.getControlsBy( "zoomWheelEnabled", true );
for ( i = 0, l = c.length; i < l; i++ ) {
    c[i].disableZoomWheel();
}

通过这种方式,鼠标轮上的缩放功能不需要自定义构建地图的选项,例如创建没有任何控制的地图(虽然Lght在一定程度上要求这样做)。此外,重新启用变焦工作等效。

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12366578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档