簡體   English   中英

Google Maps v3 - 放大/縮小能夠重復(和重定位)?

[英]Google Maps v3 - zoom in/zoom out able to repeat (and recenter)?

我有一個包含多個 POLYGON 區域的 Google 地圖。 我已經想出了如何通過單擊多邊形來放大,並使用“dblclick”偵聽器縮小並為它們刪除偵聽器...

一旦您單擊放大,然后雙擊縮小,就不允許我再次重復該功能。 有沒有辦法多次放大和縮小?

這是我的代碼:

     //POLYGON ZONE 1 ================================ 
  var zone1;

  var triangleCoords = [
    new google.maps.LatLng(29.738692, -95.399331),
    new google.maps.LatLng(29.738688, -95.394781),
    new google.maps.LatLng(29.737048, -95.394781),
    new google.maps.LatLng(29.737048, -95.399331)
  ];

  // Construct the polygon
  // Note that we don't specify an array or arrays, but instead just
  // a simple array of LatLngs in the paths property
  zone1 = new google.maps.Polygon({
    paths: triangleCoords,
    strokeColor: "#00AEEF",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#00AEEF",
    fillOpacity: 0.05,
  });

  zone1.setMap(map);
  zone1._myBounds = new google.maps.LatLngBounds();
  for (var i=0; i<triangleCoords.length; i++)
  {
     zone1._myBounds.extend(triangleCoords[i]);
  }

  var listener = google.maps.event.addListener(zone1, 'click', function () {
      map.fitBounds(zone1._myBounds);
      google.maps.event.removeListener(listener); 
  });

    var listener2 = google.maps.event.addListener(zone1, 'dblclick', function() {
    if (map.getZoom() > 16) map.setZoom(13); 
    //map.setZoom(map.getZoom() -1);
    //map.setCenter(map.getCenter());
    google.maps.event.removeListener(listener2); 
    google.maps.event.addListener(zone1, 'click', function (){
        map.fitBounds(zone1._myBounds);});
  });

對於我的其他 POLYGON 區域,我是否還必須更改變量名稱才能使其工作?

此外,返回中心似乎無法正常工作。 如果我需要在一個單獨的問題中提出這個問題,我會的。

直接的問題是您在 dblclick 上添加的點擊偵聽器中沒有做同樣的事情:

google.maps.event.addListener(zone1, 'click', function (){
    map.fitBounds(zone1._myBounds);});

對比原版:

var listener = google.maps.event.addListener(zone1, 'click', function () {
  map.fitBounds(zone1._myBounds);
  google.maps.event.removeListener(listener); 
});

暫無
暫無

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

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