如何使用Google Maps API禁用鼠标滚轮缩放

我正在使用Google Maps API(v3)在页面上绘制几张地图。 我想要做的一件事是在地图上滚动鼠标滚轮时禁用缩放,但我不确定如何。

我禁用了scaleControl(即删除了缩放UI元素),但这并不妨碍滚动缩放。

这里是我的功能的一部分(这是一个简单的jQuery插件):

$.fn.showMap = function(options, addr){
  options = $.extend({
    navigationControl: false,
    mapTypeControl: false,
    scaleControl: false,
    draggable: false,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }, options);
  var map = new google.maps.Map(document.getElementById($(this).attr('id')), options);

  // Code cut from this example as not relevant
};

在地图API第3版,你可以简单地设置scrollwheel在MapOptions属性中的选项设置为false:

options = $.extend({
    scrollwheel: false,
    navigationControl: false,
    mapTypeControl: false,
    scaleControl: false,
    draggable: false,
    mapTypeId: google.maps.MapTypeId.ROADMAP
}, options);

如果您使用的是Maps API版本2,则必须使用disableScrollWheelZoom()API调用,如下所示:

map.disableScrollWheelZoom();

在Maps API版本3中默认启用scrollwheel缩放,但在版本2中,除非通过enableScrollWheelZoom() API调用明确启用,否则它将被禁用。


Daniel的代码完成这项工作(谢谢一堆!)。 但我想完全禁用缩放。 我发现我必须使用这四个选项才能这样做:

{
  zoom: 14,                        // Set the zoom level manually
  zoomControl: false,
  scaleControl: false,
  scrollwheel: false,
  disableDoubleClickZoom: true,
  ...
}

请参阅:MapOptions对象规范


以防万一你想动态地做到这一点;

function enableScrollwheel(map) {
    if(map) map.setOptions({ scrollwheel: true });
}

function disableScrollwheel(map) {
    if(map) map.setOptions({ scrollwheel: false });
}

有时你必须在地图上显示一些“复杂”的东西(或者地图只是布局的一小部分),而且这个缩放的中间部分会放在中间,但是一旦你有了一张干净的地图,这种缩放方式非常好。

链接地址: http://www.djcxy.com/p/14301.html

上一篇: How to disable mouse scroll wheel scaling with Google Maps API

下一篇: Google Map API v3 — set bounds and center