2012-03-28 173 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