2011-03-08 35 views
1

我有這段代碼在這裏:爲什麼Google Maps在被要求時不會變焦?

function ShowSelection(addr){ 
    var latLngBounds; 

    geocoder.geocode({ "address": addr }, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 

      if (selectionArea === undefined || selectionArea === null) { 
       selectionArea = new google.maps.Rectangle({ 
        map: map 
       }); 
      } 

      latLngBounds = results[0].geometry.bounds; 
      selectionArea.setBounds(latLngBounds); 

      map.panTo(latLngBounds.getCenter()); 
      map.setZoom(12); 
     } 
     else { 
      alert("Geocode was not successful for the following reason: " + status); 
     } 
    }); 
} 

我的問題是,當我打電話map.setZoom(12)地圖只是停留在相同的縮放級別已經是在。

我想一個更好的解決方案是將其設置爲顯示地圖窗口中完整selectionArea的縮放級別。

所以我想這是一個排序雙待的:

  1. 我如何獲得縮放級別調用setZoom改變時()?
  2. 我將如何設置縮放級別,以便在地圖上繪製的矩形完全適合地圖div的邊界? (我期待的效果是讓地圖平移到selectionArea的中心點,並使地圖的邊界大於選擇區域的邊界,即整個selectionArea在地圖上可見w/o滾動。

回答

2

我不知道我理解你的問題。 代碼您發佈地理編碼地址,並繪製與地圖邊界的大小相同的矩形。 所以......

調用setZoom()時如何獲取縮放級別 ?

好吧......看起來沒問題。檢查您的地圖縮放尚未設定在12

我將如何設置縮放級別,這樣 一個矩形中的地圖將 完全貼合在 地圖div的邊界上畫?

可以使地圖適合用

map.fitBounds(latLngBounds); 
+0

是的界限,我已經證實了我縮小放大4當我點擊觸發該事件在我的代碼片段的按鈕。那個map.setZoom()調用並不是在做一件我可以告訴的事情。 – Ryan 2011-03-08 19:55:43

+0

@Ryan我已經在jsfiddle上測試過'setZoom()'它可以很好地調用它。你是否設定了限制或其他? – kjy112 2011-03-08 20:00:43

+0

這裏是一個鏈接到我的代碼工作js小提琴,以獲得不希望的效果(不縮放),你鍵入一個郵政編碼或城市/國家組合到左上角的搜索框,然後單擊按鈕,說「中央」。您會看到平移發生,但縮放不會。 http://jsfiddle.net/pbwfL/1/ – Ryan 2011-03-08 20:19:10

相關問題