Ich bin neu bei GeoJSON. Ich habe eine GeoJSON-Features-Sammlung wie gezeigt und möchte sie in einer Postgres-Tabelle (Testtabelle) speichern. Meine postgres-Tabelle enthält eine Seriennummer und eine Geometriespalte.
{
"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
]
]
]
}
}
]
}
Ich möchte die GeoJSON-Daten in die Tabelle testtable einfügen.
Wie gehe ich vor?
Ich benutze die postgres Version 9.3.5 mit der postgis Version 2.1.3
Ich bin auf zuvor gestellte Fragen verwiesen worden, die beantworten, wie ein einzelnes Feature, z. B. ein Punkt oder ein Polygon, gespeichert wird. Meine Frage lautet, wie mehrere Features in der GeoJSON-Datei gespeichert werden sollen. Mit mehreren Features meine ich eine Mischung aus Punkten, Linien und Polygon-Feature-Typen in einer Datei.
Antworten:
Vorausgesetzt, Sie haben mindestens PostgreSQL Version 9.3, können Sie einige JSON-Funktionen und -Operatoren verwenden , um die relevanten Teile der GeoJSON-Spezifikation zu extrahieren, die von ST_GeomFromGeoJSON zum Erstellen von Geometrien benötigt werden.
Versuchen Sie Folgendes, wo Sie den JSON im oberen Teil ersetzen können:
Findet drei Geometrien. Die
geom
Spalte enthält das Geometrieobjekt und dasgid
ist die Feature-Nummer. DieST_AsText
Funktion zeigt das WKT- Äquivalent jeder Geometrie. Ich habe auch dieproperties
Attribute oder hinzugefügt, die für jede Geometrie definiert werden können, wie in der Spezifikation gezeigt.Sie sollten mit ST_SetSRID eine SRID für die Geometrie zuweisen.
Oder wenn Sie nur eine einzige heterogene GEOMETRYCOLLECTION benötigen, können Sie diese so kompakt gestalten:
Siehe auch Erstellen von GeoJSON-Feature-Sammlungen mit JSON- und PostGIS-Funktionen aus dem Postgres OnLine-Journal.
quelle