簡體   English   中英

Google Maps JavaScript API縮放事件

[英]Google Maps JavaScript API Pinch to Zoom Event

在Google Maps API的JavaScript版本中,是否可以跟蹤縮放事件? 我想做的是讓用戶縮放2級而不是1級。

在桌面上使用類似的方法可能有效:

google.maps.event.addListener(map, 'zoom_changed', function () {
    map.setZoom(map.getZoom() + 2);
});

但是使用zoom_changed事件,您無法分辨用戶在使用捏縮放手勢時是在縮小還是在移動設備上放大。

這里有一個有效的例子

請插入您的APIKEY

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
  html, body, #map-canvas { height: 100%; margin: 0; padding: 0;}
</style>
<script type="text/javascript"
  src="https://maps.googleapis.com/maps/api/js?key=APIKEY">
</script>
<script type="text/javascript">
  var zoom = 0;
  var map;
  function initialize() {
    var mapOptions = {
      center: { lat: -34.397, lng: 150.644},
      zoom: 8
    };
    map = new google.maps.Map(document.getElementById('map-canvas'),
        mapOptions);
    zoom = map.getZoom();
    console.log("initial zoom: "+zoom);

    google.maps.event.addListener(map, 'zoom_changed', function () {
      console.log("zoom changed");
      if(map.getZoom() > zoom){
        console.log("zoomed IN");
      }else if(map.getZoom() < zoom){
        console.log("zoomed OUT");
      }
      zoom = map.getZoom();
    });
  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
    <div id="map-canvas"></div>
</body>
</html>

創建地圖對象后,保存其當前縮放比例。 然后在zoom_changed偵聽器中,將存儲的值與當前地圖的縮放級別進行比較。

帶有示例的JSBin: http ://jsbin.com/befefax/edit?html,控制台,輸出(記住要添加自己的APIKEY)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM