繁体   English   中英

JavaScript Google Maps API-禁用缩放

[英]javascript google maps api - disable zooming

我正在尝试在调用fitbounds(确定正确的缩放级别)后禁用缩放。 我尝试设置最小和最大缩放值,但它不起作用。 这是我的代码:

var bounds = new google.maps.LatLngBounds(
        //south, west
        new google.maps.LatLng(minLat, minLon), 
        //north, east
        new google.maps.LatLng(maxLat, maxLon)
);
map.fitBounds(bounds);
currentZoom = map.getZoom();
map.setOptions({maxZoom: currentZoom, minZoom: currentZoom});

为了清楚起见,我要禁用的是鼠标缩放。

谢谢

map.fitBounds是异步的,您需要为zoom_changed事件添加一个事件侦听器。

google.maps.event.addListenerOnce(map, 'zoom_changed', function () {
    currentZoom = map.getZoom();
    map.setOptions({
        maxZoom: currentZoom,
        minZoom: currentZoom
    });
});

概念证明

代码段:

 var geocoder; var map; // Newark, NJ, USA (40.735657, -74.1723667) // Baltimore, MD, USA (39.2903848, -76.6121893) var maxLat = 40.735657; var maxLon = -74.1723667; var minLat = 39.2903848; var minLon = -76.6121893; function initialize() { var map = new google.maps.Map( document.getElementById("map_canvas"), { center: new google.maps.LatLng(37.4419, -122.1419), zoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP }); var bounds = new google.maps.LatLngBounds( //south, west new google.maps.LatLng(minLat, minLon), //north, east new google.maps.LatLng(maxLat, maxLon)); map.fitBounds(bounds); google.maps.event.addListenerOnce(map, 'zoom_changed', function() { currentZoom = map.getZoom(); map.setOptions({ maxZoom: currentZoom, minZoom: currentZoom }); }); } google.maps.event.addDomListener(window, "load", initialize); 
 html, body, #map_canvas { height: 100%; width: 100%; margin: 0px; padding: 0px } 
 <script src="https://maps.googleapis.com/maps/api/js"></script> <div id="map_canvas" style="border: 2px solid #3872ac;"></div> 

只需检查文档即可

禁用滚轮,按钮和双击缩放:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM