ESRI JavaScript API:循环构建图层选择菜单



供参考,请参阅:https://developers.arcgis.com/javascript/jssamples/map_dynamiclayerlist.html

但是,与ESRI示例不同,我正在加载几个不同的服务,每个服务都有多层。因此,我根据以下方式修改了ESRI代码:

var visible = [];
function buildLayerList() {           
   arrayUtils.forEach(map.layerIds, function (id) {
     var currLayer = map.getLayer(id); 
     var items = arrayUtils.map(currLayer.layerInfos, function (info, index) {
        if (info.defaultVisibility) {
                      visible.push(info.id);
        }
        return "<input type='checkbox' class='list_item'" + (info.defaultVisibility ? "checked=checked" : "") + "' id='" + info.id + "'' /><label for='" + info.id + "'>" + info.name + "</label>";
       });
  });
     //more code per ESRI
}

但是,就我而言,items变量没有获得任何值;它以零或未定义的返回。我认为这是因为与Esri不同,我基本上有两个循环。

那么我该如何修复?我不想用力编码图层选择菜单选项,但是如果我不能弄清楚,可能必须要。

注意:这些都是ArcGIS动态层。

谢谢!

没关系:我所需要的只是ESRI JavaScript API的'Toc widtget';我下载并在我的代码中实现。比试图重新发明方向盘要容易得多。谢谢 - 特别是 @pointy。

最新更新