2015-11-20 171 views
-1

我在單個頁面上有許多Google地圖,並且我想通過jQuery選擇器只在一個地圖上登錄setCenter。我可以設置一個地圖這樣獲取特定元素的對象

google.maps.event.addListenerOnce(map, "idle", function() { 
    this.setCenter(latlng); 
}); 

中心,但這樣做我怎麼設置中心使用像這樣

$(".google-map-1").each(function() { 
    $(this).setCenter(latlng); 
}); 

jQuery選擇這顯然是行不通的一張地圖,它是因爲我將setCenter()函數應用於map元素而不是元素map對象。

那麼,如何獲取特定元素的地圖對象,以便我可以將setCenter()應用於它,並因此將Google地圖居中?

回答

1

您無法通過DOM獲取Google地圖的實例。所以,顯然,使用jQuery也無法做到這一點。

你能做的唯一一件事就是存儲創建後您的地圖:

var map = new google.maps.Map(...); 

然後,你將永遠是能夠做到:

map.setCenter(latlng); 

分配一個新創建的實例變量並使用它是訪問google.maps.Map對象的唯一方法。

如果你有幾個地圖,你可以使用數組,數組中的應用setCenter到每一個實例:

var maps = []; 

maps.push(new google.maps.Map(...)); // map 1 
maps.push(new google.maps.Map(...)); // map 2 
maps.push(new google.maps.Map(...)); // map 3 

然後,你就可以用它來操縱像數組:

maps.forEach(function(map) { 
    map.setCenter(latlng); 
}); 
+0

我已經試過了,但它只是結束了圍繞我的頁面上的最後一個地圖,從來沒有一個我wan't – guub

+0

當然,它會保存最後分配的實例。如果你有很多地圖,你需要使用它們的數組。我會更新我的答案。 –

+0

這樣做,雖然它集中每個地圖。我要買它。謝謝 – guub