2012-03-28 172 views
2

我試圖更新圖片覆蓋在谷歌地圖上飛。我可以創建一個新的覆蓋對象,但我無法弄清楚如何修改它。我可以更新位於overlayImage對象谷歌地圖:更新圖片覆蓋

var overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds); 

我想修改窗格在overlayImage的縮放變化,但我無法通過函數傳遞。我也無法在'地圖'對象中找到它。

google.maps.event.addListener(map, 'zoom_changed', function(overlayImage) { 

} 

如何在更改縮放級別時更新myimage.png?

回答

3

我認爲問題是overlayImage超出了您添加事件偵聽器的範圍。

作爲一個測試,嘗試全局聲明該變量,然後再賦值該變量。

/* top level */ 
var overlayImage; 
... 
/* later on */ 
overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds); 

在JavaScript中,你不能簡單地在一個函數中傳入一個變量,並希望它會提取你之前聲明的某個東西。另一件可能發生的事情是,事件偵聽器將事件對象作爲回調函數中的第一個參數傳遞,但您已將其命名爲overlayImage,因此在該回調中,overlayImage的上下文實際上是事件對象。你會這樣做:

google.maps.event.addListener(map, 'zoom_changed', function(event) { 
    /* overlayImage can now be used */ 
    overlayImage.someAPIFunction(); 
} 
+0

太棒了,謝謝! :) – 2012-03-28 17:16:18

+0

添加事件對象工作。 – 2012-03-28 17:16:49