首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在地图上循环遍历WMS图层

在地图上循环遍历WMS图层
EN

Stack Overflow用户
提问于 2017-10-02 18:27:12
回答 1查看 152关注 0票数 0

我正在起草一份带有传单的申请书。基本上,我需要添加几个WMS层,然后使用定时循环遍历它们。这是代码(仍然是草稿,我没有测试它),但是我遗漏了"showLayer(i)“的一个函数。

代码语言:javascript
复制
  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){
        ?????
    }
EN

回答 1

Stack Overflow用户

发布于 2017-10-05 16:46:41

因为在您的代码中使用layer (令人困惑的命名!)是一个包含L.TileLayer实例的Array ...

代码语言:javascript
复制
function showLayer(i){
    layer.forEach(function(l){ l.removeFrom(map); });
    layer[i].addTo(map);
}

另外,请注意正确的语法应该是array.push(foo)而不是array.push = foo。还要注意,创建一个具有初始长度的数组可能会使push()在末尾添加更多元素,而不是填充该数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46523782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档