GUIDE4YOU - 如何添加动态层?
GUIDE4YOU - how to add a dynamic layer?
来自 guide4you 的人在使这个库开源方面做得很好!!
我已经成功制作了一个工作演示 guide4you 示例。
库的可调性如何?
例如,如何使用 GeoJSON 而不是 KML 添加图层。
层可以动态添加(使用自己的 javascript)而不是预定义的吗?
以此为例:https://openlayers.org/en/latest/examples/geojson.html
更具体地说:该示例如何与 guide4you 一起工作?
亲切的问候,
山姆
要在 guide4you 中使用 GeoJSON 图层,您只需在图层配置中指定类型 "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 示例属于同一类型。
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 方法中使用。
来自 guide4you 的人在使这个库开源方面做得很好!!
我已经成功制作了一个工作演示 guide4you 示例。
库的可调性如何? 例如,如何使用 GeoJSON 而不是 KML 添加图层。 层可以动态添加(使用自己的 javascript)而不是预定义的吗?
以此为例:https://openlayers.org/en/latest/examples/geojson.html
更具体地说:该示例如何与 guide4you 一起工作?
亲切的问候,
山姆
要在 guide4you 中使用 GeoJSON 图层,您只需在图层配置中指定类型 "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 示例属于同一类型。
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 方法中使用。