[FOSSGIS-Talk] ogr2ogr Import GeoJSON nach PostgreSQL

Daniel Kerkow daniel.kerkow at fu-berlin.de
Fr Mai 2 17:09:36 CEST 2014


Hallo Liste,

ich habe hier einen Workflow, bei dem an einer Stelle GeoJSON Daten nach
PostgreSQL importiert werden müssen. Das klappt soweit eigentlich auch.

Nun habe ich das Gefühl, an einer Stelle auf einen Bug gestoßen zu sein,
aber vielleicht kennt ja jemand das Problem und weiß Abhilfe:

Das GeoJSON hat eine Spalte elev_m, in der Höhen als Integer abgelegt sind
oder aber "null" (ohne Anführungszeichen in der Datei) wenn kein Wert da
ist. Der Import nach PostgreSQL erfolgt nach diesem Muster:

ogr2ogr -t_srs EPSG:3785 -f PostgreSQL PG:"[connection]" source.geojson
-nln table_name

Wenn die erste Zeile des GeoJSON aber keinen Wert sondern null enthält,
wird die Spalte elev_m von OGR als varchar erkannt, nicht als integer.
Trage ich beim ersten Objekt z.B. "0" ein, wird es richtig erkannt.

Nun gibt es laut OGR Dokumentation (http://www.gdal.org/ogr/drv_pg.html)
die Option, den Spaltentyp anzugeben, das sollte dann so aussehen:

ogr2ogr -lco COLUMN_TYPES=elev_m=integer -t_srs EPSG:3785 -f PostgreSQL
PG:"[connection]" source.geojson -nln table_name

Hat aber keine Auswirkung. Wenn die erste Zeile keine Ganzzahl enthält,
wird trotzdem varchar angelegt. Es folgt kein Syntax-Fehler oder sonst
was, keine weitere Info vom Programm.

Habe ich die Syntax falsch verstanden? Ist es ein Bug?

Danke und ein schönes langes Wochenende noch.
Daniel