谷歌地图:更新图像叠加

时间:2012-03-28 14:50:39

标签: javascript google-maps google-maps-api-3

我正在尝试动态更新Google地图上的图片叠加层。我可以创建一个新的叠加对象,但我无法弄清楚如何修改它。我可以更新overlayImage对象

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

我想在缩放更改时修改overlayImage,但我无法通过该函数传递它。我也无法在'map'对象中找到它。

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

}

如何在更改缩放级别时更新myimage.png?

1 个答案:

答案 0 :(得分: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();
}