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.

Спасибо!

1 ответ

Не берите в голову: все, что мне было нужно, это "Виджет TOC" API Esri Javascript; Я скачал это и внедрил в мой код. Гораздо проще, чем пытаться заново изобрести колесо. Спасибо - особенно @Pointy.

Другие вопросы по тегам