javascript google maps api - 禁用缩放

时间:2015-08-11 20:32:45

标签: javascript google-maps

我试图在调用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});

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

谢谢

2 个答案:

答案 0 :(得分:2)

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

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

proof of concept fiddle

代码段



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;
&#13;
&#13;

答案 1 :(得分:1)

只需查看documentation

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

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