[英]Looping through WMS Layers on a map
我正在使用Leaflet編寫應用程序。 基本上,我需要添加幾個WMS圖層,然后使用定時循環在它們之間循環。 這是代碼(仍然是草稿,我沒有對其進行測試),但是我缺少“ showLayer(i)
”的功能。
var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png',
osm = new L.TileLayer(osmUrl, {maxZoom: 18}),
mymap = new L.Map('map', {layers: [osm], center: new L.LatLng(41.69906, 12.39258), zoom: 5, maxZoom:8});
var optionsArray =['opt1', 'opt2', ...];
var layer = new Array(myoptionsArray.length);
for (i = 0; i < myoptionsArray.length; i++) {
l = L.tileLayer.wms(url, {optionsArray[i]});
layer.push = l
l.addTo(mymap);
}
function myLoop(){
...count on i....
showLayer(i);
timerID = setTimeout(myLoop, 500);
}
myLoop();
function showLayer(i){
?????
}
由於在代碼layer
(迷惑命名!)是一個Array
包含的實例L.TileLayer
...
function showLayer(i){
layer.forEach(function(l){ l.removeFrom(map); });
layer[i].addTo(map);
}
另外,請注意,正確的語法是array.push(foo)
而不是array.push = foo
。 另請注意,創建具有初始長度的數組可能會使push()
在末尾添加更多元素,而不是填充數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.