GUIDE4YOU - 如何添加动态图层?

时间:2017-05-09 11:38:32

标签: javascript openlayers-3 guide4you

来自 guide4you 的人们做了这个lib opensource做得很棒!!

我已经成功完成了一个有效的演示 guide4you 示例。

lib的可调性如何? 例如,如何使用GeoJSON而不是KML添加图层。 可以动态添加图层(使用自己的javascript)而不是预定义的吗?

以此为例:https://openlayers.org/en/latest/examples/geojson.html

更具体一点:该示例如何与 guide4you 一起使用?

亲切的问候,

萨姆

1 个答案:

答案 0 :(得分:0)

要在guide4中使用GeoJSON图层,您只需在layerconfig中指定类型“GeoJSON”。

{ "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与openlayers的geojson示例中的geojsonObject相同。 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文件中使用,也可以在addFeatureLayer api方法中使用。