通过单击button禁用缩放在Google地图中的拖动

我想添加禁用()函数内的代码,通过点击“禁用”button来禁用拖动和缩放谷歌地图API V3。

<script type="text/javascript"> var map; function initialize() { var uluru = new google.maps.LatLng(21, 57); map = new google.maps.Map(document.getElementById("map"), { zoom: 6, center: uluru, mapTypeId: google.maps.MapTypeId.HYBRID }); } function disable(){ } </script> <body onload="initialize()" > <input type="button" id="next" value="disableZoomDrag" onclick="disable()"> </body> 

您可以在地图对象上使用setOptions()方法:

 map.setOptions({draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true}); 

如果这不能防止缩放,您可以随时将最小和最大缩放比例设置为当前缩放比例。

还有disableDefaultUI选项,它可能会考虑所有这些事件,但它可能会禁用单击现有的元素。

@ ScottE的回答指出了我使用map.setOptions()的正确方向。 但是,从API文档中 ,我发现有一组更优雅的选项可供设置。 也许这些比答案更新,但对我来说工作得很好。

 function disablePanningAndScrolling() { map.setOptions({ zoomControl: false, gestureHandling: 'none' }); } 

这完全禁用缩放和平移。

要使事情恢复正常,只需将属性恢复为默认值:

 function disablePanningAndScrolling() { map.setOptions({ zoomControl: true, gestureHandling: 'greedy' // or 'cooperative'* }); } 

*:如果页面不滚动,默认是贪婪的,当它是合作时。 select你申请的情况。