Gibt es eine effiziente Möglichkeit, Geojson in WKT umzuwandeln?

10

Ich möchte ST_GeomFromText () verwenden, um Vektordaten in PostGIS zu laden. Ich weiß jedoch nicht, wie ich vom Geojson-Typ zum WKT konvertieren soll.

NB Ich weiß, dass ich OGR2OGR verwenden kann, um den Geojson direkt hochzuladen, aber ich möchte nur bestätigen, ob es eine Möglichkeit gibt, ihn zu konvertieren oder nicht. Vielen Dank.

Yu Guo
quelle
ogr2ogr könnte ein Weg sein
Unter dem Radar
Auf welche Weise effizient?
RK
1
Wenn Ihre PostGIS-Version> 2 ist, importieren Sie GeoJSON direkt.
Devdatta Tengshe

Antworten:

11

warum nicht verwenden

  • ST_GeomFromGeoJSON, das eine Geojson-Darstellung einer Geometrie als Eingabe verwendet und ein PostGIS-Geometrieobjekt ausgibt.
  • ST_AsGeoJSON , die Umkehrung

Siehe Erstellen von GeoJSON-Feature-Sammlungen mit JSON- und PostGIS-Funktionen oder ST_GeomFromGeoJSON aus OpenGeo.

Verwenden Sie zum Konvertieren in WKT

  • ST_AsText , die Umkehrung von ST_GeomFromText (), die den bekannten Text (WKT) zurückgibt
  • ST_AsEWKT wie bei SRID-Metadaten
Gen
quelle
Hallo, vielen Dank. Ich kenne dieses Tool nicht einmal. Ich lerne immer noch von dir als Student.
Yu Guo
7

Wenn Python Ihr Ding ist, können Sie GeoMet verwenden . Es ist ein Python-Modul, das GeoJSON in WKT / WKB konvertiert und umgekehrt. Sie können es mit pip direkt aus dem Github-Repository installieren

$ pip install git+git://github.com/larsbutler/geomet.git

Hier ist eine Beispielkonvertierung:

>>> from geomet import wkt
>>> point = {'type': 'Point', 'coordinates': [116.4, 45.2, 11.1]}
>>> wkt.dumps(point, decimals=4)
'POINT (116.4000 45.2000 11.1000)'
RK
quelle