我试图在调用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});
为了说清楚,我要禁用的是鼠标缩放。
谢谢
答案 0 :(得分:2)
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>
&#13;
答案 1 :(得分:1)
只需查看documentation。
禁用滚轮,按钮,然后双击缩放:
map.setOptions({zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true});