Konvertieren von GeoJSON nach Shapefile mit ogr2ogr?

24

Ich habe eine GeoJson-Datei, die ich mit ogr2ogr in FWTools in ESRI Shapefile konvertieren möchte.

Ich habe versucht mit

ogr2ogr -F "ESRI Shapefile" filename.shp geojsonfile.json OGRGeoJSON

Ich habe eine Ausgabe bekommen

FEHLER 6: Auf Shapefile-Layern können keine Felder vom Typ StringList erstellt werden. FEHLER 1: Es wurde versucht, eine Nicht-Polygon-Geometrie (POINT) zu schreiben, um ein Shapefile einzugeben. FEHLER 1: Die Übersetzung wird vorzeitig beendet, nachdem die Übersetzung des Layers OGRGeoJSON fehlgeschlagen ist

Die von uns bereitgestellten GeoJSON-Eingaben erfolgen im Standard-Geojson-Format.

Inhalt von Geojson ist wie {zum Teilen habe ich nur einen Teil von Features Array genommen}

{"id":1223,
"properties":{"name":"3","level":2},
"map_version":11,"type":"FeatureCollection","x_id":1234,"obj_type":"LevelGeometry",
"features":[

{
"my_area":[131.40093253528894,33.58879853190332,6.515867411008615,3.490549810987222,-0.6237271428108215],
"id":1984791,
"location":{"type":"Point","coordinates":[131.4009325,33.5887985]},
"properties":{"display_name":"xyz"},
"type":"Feature",
"geometry":{"type":"Polygon","coordinates":[[[131.4009508,33.5888314],[131.4008895,33.5887946],[131.4009148,33.5887653],[131.4009761,33.5888020],[131.4009508,33.5888314]]]},
"obj_type":"Geometry"
}

]
}
sidd.k
quelle
2
Willkommen im SE.GIS Forum. Schauen Sie sich ähnliche Frage gis.stackexchange.com/questions/13762/…
Sunil
Danke fürs Willkommen :) Ich war diesen Link durchgegangen, bevor ich etwas gepostet habe. Ich möchte FME nicht verwenden, ich möchte es mit FWTools für Linux tun. Ich hatte vorher wkt in shapefile konvertiert, was ziemlich zufriedenstellend war, aber jetzt habe ich die gleichen Daten im geoJSON-Format anstelle von wkt. und muss die SHP-Datei haben, während ich versuche zu tun, bekomme ich die Fehler;
sidd.k
Ich stimme dafür, es offen zu halten, da die verknüpfte Frage diese Frage nicht beantwortet.
Devdatta Tengshe
Die Konvertierung Ihrer Testdaten funktioniert für mich mit den ogr2ogr-Versionen 1.9.2 und 1.10 einwandfrei. Ein Shapefile mit 1 Polygon wird fehlerfrei erstellt. Ihre "FWTools für Linux" sind möglicherweise zu alt. Was ogr2ogr --versionheißt das?
Hermann
1
Der Schalter --version war in der mit FWTools 2.0.6 gelieferten Version von ogr2ogr noch nicht vorhanden. Ich vermute auch, dass GeoJSON noch nicht unterstützt wurde. 2.0.6 ist wirklich alt (~ 2006), gibt es einen Grund, warum Sie keine moderne Version von GDAL verwenden können?
DavidF

Antworten:

28

Sie müssen den SHP-Geometrietyp erzwingen (da der Geometrietyp von GeoJSON Geometry Collection in SHPs nicht unterstützt wird) und die -skipfailuresOption verwenden:

ogr2ogr -nlt POINT -skipfailures points.shp geojsonfile.json OGRGeoJSON    
ogr2ogr -nlt LINESTRING -skipfailures linestrings.shp geojsonfile.json OGRGeoJSON
ogr2ogr -nlt POLYGON -skipfailures polygons.shp geojsonfile.json OGRGeoJSON

(Getestet mit GDAL 1.10.0, veröffentlicht am 24.04.2013)

Antonio Falciano
quelle
2
Um das Beste aus dem Geojson herauszuholen, würde ich vorschlagen, dasselbe auch für die Punkte (und Linien, falls Sie welche im Geojson haben) durchzuführen. Auf diese Weise erhalten Sie zwei oder drei Shapefiles aus einem Geojson.
AndreJ
@AndreJoost Ich stimme dir zu, das war nur ein Beispiel. Ich aktualisiere die Antwort unter Berücksichtigung Ihres Vorschlags. Vielen Dank.
Antonio Falciano
2
Keine Lösung, aber ich hatte viel Glück mit einem Online-Tool, das mit ogr2ogr erstellt wurde: ogre.adc4gis.com
JasonBK