簡體   English   中英

在地圖上遍歷WMS圖層

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM