GUIDE4YOU - как добавить динамический слой?

Ребята из guide4you отлично поработали над созданием этой библиотеки с открытым исходным кодом!

Мне удалось получить работающий демонстрационный образец guide4you.

Насколько регулируема библиотека? Например, как я могу добавить слои с GeoJSON вместо KML. Можно ли добавлять слои динамически (с собственным javascript) вместо предопределенных?

Возьмем для примера: https://openlayers.org/en/latest/examples/geojson.html

Чтобы быть более конкретным: как этот пример может работать вместе с guide4you?

С уважением,

Сэм

1 ответ

Решение

Чтобы использовать слой GeoJSON в guide4you, вы можете просто указать тип "GeoJSON" в layerconfig.

{ "id": "3", "type": "GeoJSON", "source": { "url": "path/to/geojson" } }

См. Также https://github.com/KlausBenndorf/guide4you/blob/master/conf/full/layers.commented.json для некоторых примеров

Если вы хотите добавить слой на лету с помощью JavaScript, вы можете использовать эту функцию API:

map.get('api').addFeatureLayer({ "id": "3", "type": "GeoJSON", "source": { "url": "path/to/geojson" }, "visible": true })

возможные параметры те же, что и в конфигурации слоя.

Если вам нравится добавлять только новые функции, вы можете создать слой с типом "Intern" и добавить функции с функциональностью openlayers. Источником векторного слоя является подкласс ol.source.Vector. В приведенном ниже примере я предполагаю, что geojsonObject имеет тот же вид, что и в примере с geojson для открытых слоев. var layer = map.get('api').addFeatureLayer({ "id": "3", "type": "Intern", "source": { "features": [] }, "visible": true }); layer.getSource().addFeatures((new ol.format.GeoJSON()).readFeatures(geojsonObject));

И последнее, но не менее важное: вы можете использовать упрощенный API для определения функций внутри объекта layerConfig, например:

{ "id": "3", "type": "Intern", "source": { "features": [{ "id": 6, "name": "Some feature", "description: "Some description", "style": "#defaultStyle", "geometryWKT": "... any wkt string here ..." },{ "geometryWKT": "... any wkt string here ..." }] } }

это можно использовать либо в файле layerConfig, либо в методе API addFeatureLayer.

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