我正在尝试动态更新Google地图上的图像叠加层。我可以创建一个新的叠加层对象,但无法弄清楚如何对其进行修改。我可以更新overlayImage对象吗
var overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds);
我想在缩放更改时修改overlayImage,但是无法通过该函数传递它。我也无法在“地图”对象中找到它。
google.maps.event.addListener(map, 'zoom_changed', function(overlayImage) {
}
更改缩放级别后如何更新myimage.png?
最佳答案
我认为问题在于,当您添加事件侦听器时,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();
}
关于javascript - 谷歌 map :更新图像叠加层,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9910059/