谷歌地图v3地面覆盖循环

时间:2014-07-14 07:21:12

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

我写了一个脚本,将天气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);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

缺乏解决我的问题的方法,我改变了我的策略并使用该组图像构建了一个动画GIF图像并将其显示在groundOverlay中。像这样:

radarMap = new google.maps.GroundOverlay( "./images/animatedmap.gif", boundaries,{clickable:false});

现在工作正常,结果就是我想要的!

希望这有帮助吗?