Eu sou novo no GeoJSON. Eu tenho uma coleção de recursos do GeoJSON como mostrado e gostaria de armazená-la na tabela do postgres (testtable). Minha tabela do postgres possui uma identificação serial e uma coluna de geometria.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
2565453.1826721914,
-3835048.659760314
]
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
2727584.7219710173,
-3713449.1942418693
],
[
2732476.691781269,
-3992291.473426192
]
]
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
2442627.9025405287,
-3705499.954308534
],
[
2425506.008204649,
-3886502.837287831
],
[
2425506.008204649,
-3886502.837287831
],
[
2555143.2081763083,
-3910962.686339088
],
[
2442627.9025405287,
-3705499.954308534
]
]
]
}
}
]
}
Gostaria de inserir os dados do GeoJSON na tabela de teste.
Como proceder?
Estou usando o postgres versão 9.3.5 com o postgis versão 2.1.3
Fui direcionado para perguntas anteriores que respondem como armazenar um único recurso, por exemplo, um ponto ou polígono. Minha pergunta pergunta como salvar vários recursos no arquivo GeoJSON. Por vários recursos, quero dizer uma mistura de pontos, linhas e tipos de recursos de polígono em um arquivo.
Respostas:
Supondo que você tenha pelo menos o PostgreSQL versão 9.3, você pode usar algumas funções e operadores JSON para extrair as partes relevantes da especificação GeoJSON exigida por ST_GeomFromGeoJSON para criar geometrias.
Tente o seguinte, onde você pode substituir o JSON na parte superior:
Localiza três geometrias. A
geom
coluna possui o objeto de geometria egid
é o número do recurso. AST_AsText
função mostra o equivalente WKT de cada geometria. Também incluí osproperties
atributos ou que podem ser definidos para cada geometria, como é mostrado na especificação.Você deve atribuir um SRID para a geometria, usando ST_SetSRID.
Ou, se você simplesmente precisar de uma única GEOMETRYCOLLECTION heterogênea, poderá compactá-la assim:
Consulte também Criando coleções de recursos GeoJSON com funções JSON e PostGIS no Postgres OnLine Journal, que faz o contrário.
fonte