2012-07-23 71 views
0

我有一張比寬度更高的地圖。我注意到在某些情況下,fitBounds方法無法正確調整縮放和居中以顯示所有標記。如果設置地圖的寬度和高度,Google地圖fitBounds不會超過10個位置

我已經成功地問題在這個例子中隔離:

http://jsbin.com/welcome/2568

在這個例子中我第一次嘗試加載23位,你會發現它在相當遠放大我在做什麼是:

//extending 23 positions doesn't really work 
bounds = new google.maps.LatLngBounds(); 
for (var i = 0; i < markerList.length; i++) { 
    pos = new google.maps.LatLng (markerList[i]["Za"],markerList[i]["$a"]) 
    bounds.extend(pos); 
} 
window.map.fitBounds(bounds); 

5秒鐘後,我再次運行該基本腳本,但這次而不是擴展23,我只擴展了5次邊界。這一次地圖實際上會縮小!

我注意到的是,要得到這個問題重現,我必須設置畫布div的寬度和高度:

<div id="map_canvas" style="width:450px;height:600px;"></div> 

所以我想我的問題是:我怎樣才能既設置地圖畫布大小,併成功fitBounds()25 +職位?

回答

0

我剛纔發現發生的事情是我在地圖配置中設置了minZoom。

看起來,如果minZoom低於fitBounds()所需的顯示所有位置的值,它將以靜默方式失敗。

影響地圖寬度的原因是地圖越薄,縮小顯示整個位置的時間就越多,當它滿足minZoom的約束條件時,它就會死亡。

5個職位子集的工作原因我認爲只是因爲它沒有達到minZoom。

要解決此問題,我刪除了minZoom設置。

相關問題