2013-10-21 132 views
0

我無法弄清楚如何從Google地圖獲取覆蓋圖層以便在地圖滾動時自行調整。如何在Google地圖上滾動時調整覆蓋圖層

我做這樣的事情

div = document.createElement('div') 
div.style.position = 'absolute'; 
div.borderColor = "red"; 
this.getPanes().overlayLayer.appendChild(div) 

當我周圍滾動地圖,我看到我的div的紅色框覆蓋在地圖的原始邊界了。這裏面的所有內容都很好,但是如果一旦滾動,覆蓋層之外就有新內容會怎麼樣?這將是很好,如果我可以讓覆蓋層每次調整自己的邊界,縮放等改變,但我看不出如何。

回答

0

解決這個問題的一個方法是調整您連接到疊加層的任何孩子的位置。我可以觸發「的bounds_changed」平局或一些這樣的事件,然後在抽籤方法(假設@div是覆蓋的孩子):

bounds = @getMap().getBounds() 
sw = overlayProjection.fromLatLngToDivPixel(bounds.getSouthWest()); 
ne = overlayProjection.fromLatLngToDivPixel(bounds.getNorthEast()); 
@div.style.left = sw.x + 'px'; 
@div.style.top = ne.y + 'px'; 
@div.style.width = (ne.x - sw.x) + 'px'; 
@div.style.height = (sw.y - ne.y) + 'px'; 

我想這是不壞,但你必須要不斷要考慮偏移量,它看起來並不那麼幹淨。我想這會做,但希望有更好的方式讓實際的overlayLayer移動到匹配地圖的窗口,而不是固定在初始視口上。