Konwertujesz GeoJSON na Shapefile przy użyciu ogr2ogr?

24

Mam plik GeoJson, który chcę przekonwertować na plik ESRI Shapefile przy użyciu ogr2ogr w FWTools.

Próbowałem użyć

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

Mam wyjście

BŁĄD 6: Nie można tworzyć pól typu StringList na warstwach plików kształtu. BŁĄD 1: Próba zapisania geometrii innej niż wielokąt (POINT) w celu wpisania pliku kształtu. BŁĄD 1: Przedwczesne zakończenie tłumaczenia po nieudanym tłumaczeniu warstwy OGRGeoJSON

Dane wejściowe GeoJSON, które podajemy, są w standardowym formacie geojson.

zawartość geojson jest jak {udostępnić wziąłem tylko część z tablicy funkcji}

{"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
źródło
2
Witamy na forum SE.GIS. Zobacz podobne pytanie gis.stackexchange.com/questions/13762/…
Sunil,
Dzięki za powitanie :) Przejrzałem ten link przed opublikowaniem. Nie chcę używać FME, chcę to robić za pomocą FWTools dla Linuxa. Wcześniej przekonwertowałem plik wkt na shapefile, co było całkiem satysfakcjonujące, ale teraz mam te same dane w formacie geoJSON zamiast wkt. i muszę mieć plik shp, podczas gdy próbuję to zrobić, otrzymuję błędy;
sidd.k
Głosuję za jej otwarciem, ponieważ połączone pytanie nie odpowiada na to pytanie.
Devdatta Tengshe,
Konwersja twoich danych testowych działa dla mnie dobrze w wersjach ogr2ogr 1.9.2 i 1.10. Plik kształtu z 1 wielokątem jest tworzony bez żadnych błędów. Twoje „FWTools dla systemu Linux” może być za stare. Co ogr2ogr --versionmówi
Hermann
1
Przełącznik --version jeszcze nie istniał w wersji ogr2ogr, która była dystrybuowana z FWTools 2.0.6. Zgaduję również, że nie obsługiwał jeszcze GeoJSON. 2.0.6 jest naprawdę stary (~ 2006), czy istnieje powód, dla którego nie możesz używać nowoczesnej wersji GDAL?
DavidF

Odpowiedzi:

28

Musisz wymusić typ geometrii SHP (ponieważ typ geometrii GeoJSON Collection Geometry nie jest obsługiwany w SHP) i użyć -skipfailures opcji:

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

(Testowany z GDAL 1.10.0, wydany 2013/04/24)

Antonio Falciano
źródło
2
Aby uzyskać jak najwięcej z Geojsona, sugerowałbym, aby uruchomić to samo dla punktów (i linii, jeśli masz jakieś w Geojsonie). W ten sposób otrzymujesz dwa lub trzy pliki kształtu z jednego Geojsona.
AndreJ
@AndreJoost Zgadzam się z tobą, to był tylko przykład. Aktualizuję odpowiedź, uwzględniając twoją sugestię. Dzięki.
Antonio Falciano,
2
nie rozwiązanie, ale miałem szczęście, korzystając z narzędzia internetowego zbudowanego z ogr2ogr: ogre.adc4gis.com
JasonBK