我写了一个脚本,将天气10雷达地图加载到一个数组中,并希望在谷歌地图或最后一张图像上显示动画。 我的想法是显示一个图像并在延迟后清除它,然后转到下一个图像。 我无法弄清楚为什么以下代码失败......有什么猜测?
我的测试页:http://www.egloff.eu/rsmaptest/rsmap.php
我的代码:
function nextRadarMap() {
// delete overlays
deleteOverlays();
// push the new images into an array of overlays
for (i = 0; i < 10; i++) {
radarMap = new google.maps.GroundOverlay(images[i], boundaries, {
clickable: false
});
imagesArray.push(radarMap);
}
// choose to display fixed or animated image
if (animToggle == true) {
l = imagesArray.length;
for (i = 0; i < l; i++) {
imagesArray[i].setMap(map);
// erase previous image. use of modulus to foolproof when i=0
//setTimeout( function() {imagesArray[(i+l-1)%l].setMap(null)},500);
setTimeout(function () {
clearOverlays()
}, 500);
}
} else {
// display most recent image
imagesArray[0].setMap(map);
}
}
// Removes the overlays from the map, but keeps them in the array
function clearOverlays() {
if (imagesArray) {
// for (i in imagesArray) {
for (i=0; i<imagesArray.length; i++) {
imagesArray[i].setMap(null);
}
}
}
答案 0 :(得分:0)
缺乏解决我的问题的方法,我改变了我的策略并使用该组图像构建了一个动画GIF图像并将其显示在groundOverlay中。像这样:
radarMap = new google.maps.GroundOverlay( "./images/animatedmap.gif", boundaries,{clickable:false});
现在工作正常,结果就是我想要的!
希望这有帮助吗?