GUIDE4YOU/OL3 - как читать пользовательские атрибуты слоя

Как я могу прочитать пользовательские атрибуты слоя?

Например, я добавил слой с пользовательским атрибутом test и значением sam.

Слои карты журнала консоли

createG4U('#g4u-map', 'conf/client.commented.json', 'conf/layers.commented.json').then(function (map) { map.asSoonAs('ready', true, function () { map.get('api').addFeatureLayer({ "id": "1", "type": "GeoJSON", "style": stylefunction, "source": { "url": "files/sample.json" }, "visible": true, "test" : "sam" }); map.getLayers().forEach(function (layer) { console.log(layer); }); }); });

С уважением,

Сэм

2 ответа

Решение

Это возможно с layer.get('test'),

вы не получите слой с getLayers(), так как слои вложены в разные группы слоев.

метод addFeatureLayer вернет ссылку на слой. Вы можете сохранить его и использовать позже.

Или вы можете использовать recursiveForEach который будет рекурсивно повторять все вложенные слои.

Вы можете сделать это для всех слоев карты с помощью map.getLayerGroup().recursiveForEach(function (layer) { ... }) или вы можете сделать это для FeatureLayers или BaseLayers только с map.get('featureLayers').recursiveForEach(function (layer) { ... })

Спасибо, Саймон!

Рабочий код:

createG4U('#g4u-map', 'conf/client.commented.json', 'conf/layers.commented.json').then(function (map) { map.asSoonAs('ready', true, function () { map.get('api').addFeatureLayer({ "id": "1", "type": "GeoJSON", "style": stylefunction, "source": { "url": "files/sample.json" }, "visible": true, "test" : "sam" }); map.get('featureLayers').recursiveForEach(function (layer) { console.log(layer.get('test')); }); //Make the layer visible in the menu map.get('UIConfigurator').configureUI(); }); });

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