如何使用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