google-maps - 调整Google Maps API ,如何禁用鼠标的scrollwheel

  显示原文与译文双语对照的内容

我正在使用 谷歌地图 API ( v3 ) 在页面上绘制一些地图。 我想做的一件事是当你在地图上滚动鼠标滚轮时禁用缩放,但我不确定。

我已经禁用scalecontrol( IE 删除了缩放用户界面元素) 但这并不阻止scrollwheel缩放。

下面是我的函数( 这是一个简单的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
};

非常感谢您的帮助.

时间:

在Maps映射 API of的版本 3中,你可以简单地将 scrollwheel 选项设置为 MapOptions属性:


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

如果你使用的是映射API的版本 2,你必须使用 disableScrollWheelZoom() API调用,如下所示:


map.disableScrollWheelZoom();

scrollwheel 缩放默认情况下在映射API的版本 3中启用,但在版本 2中被禁用,除非使用 enableScrollWheelZoom() API调用显式启用。

如果你想动态地这样做;


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

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

有时候你必须显示 somenting"复杂"( 或者地图是布局的一小部分) 地图,这个卷轴缩放得到在中间,但是一旦你有一个干净的地图,这种缩放方式是好的。

在我的例子中,关键的事情是在init中设置 'scrollwheel':false 。 注意:我使用 jQuery UI Map 下面我coffescriptinit函数标题:


 $("#map_canvas").gmap({'scrollwheel':false}).bind"init", (evt, map) ->

...