2013-05-02 49 views
6

我使用谷歌地圖的V3版本,並想知道如何去做這件事 - 我有一個google.maps.Markers和他們的LatLng陣列設置數組。調整谷歌地圖,以適應一組標記

我想遍歷數組並找到標記的最小/最大經度和緯度值,然後對地圖進行居中和調整大小,以便所有標記都適合屏幕,並具有小巧的因子。

通過標記數組循環遍歷標記數組我可以處理,但我不確定如何去定位和調整地圖的大小以適合它們(圍繞一個小的邊界區域,因此沒有標記與邊緣齊平)。

我不確定這是否有幫助或重要,但<div>地圖居住的是320x200像素。

回答

11

您可以創建一個功能類似

function setBounds() { 

    var bounds = new google.maps.LatLngBounds(); 
    for (var i=0; i < markersArray.length; i++) { 
     bounds.extend(markersArray[i].getPosition()); 
    } 
    map.fitBounds(bounds); 
} 

就這麼簡單!

+0

美麗。謝謝。 – larryq 2013-05-02 14:35:06

5

the google.maps.Map fitBounds method

您標記的所有位置添加一個空google.maps.LatLngBounds對象,然後調用它fitBounds。

var bounds = new google.maps.LatLngBounds(); 
for (var i=0; i < yourArrayOfMarkers.length; i++) { 
    bounds.extend(yourArrayOfMarkers[i].getPosition(); 
} 
yourMap.fitBounds(bounds); 
+0

非常感謝,謝謝。 – larryq 2013-05-02 14:36:10

+0

@geocodezip你可能想糾正你的代碼中的拼寫錯誤。必須是深夜回答;) – MrUpsidown 2014-01-30 17:35:16

+0

固定,顯然沒有運行它。 – geocodezip 2014-01-30 17:37:13