我正在使用一个名为 Leaflet 的地图应用程序。我使用的一些代码如下:
var layer1 =L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/7540/256/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
maxZoom: 12
}).addTo(map);
// 上面的代码只是在 DIV 标记中放置了一个基础层。但关键是 //addTo 方法。
我还从 Aeris 获取天气雷达数据,并使用以下方法在传单上创建一个图层:
var radar_img_arr = createVariables();
和 createVariables() 看起来像这样:
function createVariables(){
var radar_images = [];
for (var i = 0; i <= 99; ++i) {
radar_images[i] = L.tileLayer('http://tile2.aerisapi.com/QjvmoFnKc1Wj94aDULEX_8Y7R8eagwQKlUusR5WZk6JTBdz6zlCm3KIP15CLG/radar/{z}/{x}/{y}/'+data.files[i].time +'.png', {opacity: 0.6, format: 'image/png', maxZoom: 12,attribution: "FOSM"}).addTo(map).setZIndex(999);
}
return radar_images;
}
以上将所有数据一次添加到地图中只是为了测试。
我真正想要的是一个循环,它可以从地图中删除旧图层并用新图层替换它。
两个重要的方法如下: map.removeLayer(radar_img_arr[i]); map.addLayer(radar_img_arr[i+1]);
我正在尝试编写一个循环来执行此操作,但时间混乱了。其他天气网站使用 Flex 或 Flash 为雷达循环设置动画,但我想尝试使用 Javascript 解决方案。
有谁知道如何在 JS 或 jQuery 中创建这个循环?
谢谢,吉姆