O serviço WFS do GeoServer já pode gerar o GeoJSON a partir de fontes de dados de recursos complexos através do app-schema. No entanto, a saída pode não ser agradável em alguns casos, devido a isso as seguintes melhorias foram realizadas:
- A alternância de propriedade/elemento típica do GML é preservada, causando estruturas profundamente aninhadas e feias. Nem todo mundo gosta de escrever um “container.xx” para atingir o valor x, com a versão 2.16.x a saída ignora um dos contêineres e expõe uma estrutura direta “container.x”
- Os atributos XML agora são transformados em propriedades JSON simples e prefixados com uma “@”
- Os tipos de recurso e dados não são mais perdidos nas traduções, preservados pelos atributos “@feaureType” e “@dataType”
- Recursos aninhados completos são codificados como GeoJSON novamente, mantendo seus identificadores
Aqui está um exemplo do arquivo de saída no formato GeoJSON da versão 2.16.x:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "0001000001",
"geometry": {
"type": "Point",
"coordinates": [51.0684, 1.4298]
},
"properties": {
"@featureType": "Borehole",
"identifier": {
"value": "BSS000AAAA",
"@codeSpace": "http://www.ietf.org/rfc/rfc2616"
},
"bholeHeadworks": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [51.0684, 1.4298]
},
"properties": {
"@featureType": "BoreCollar",
"collarElevation": {
"value": -32,
"@srsName": "http://www.opengis.net/def/crs/EPSG/0/5720",
"@srsDimension": "1",
"@uomLabels": "m"
}
}
}
],
Fonte: GeoServer Blog