¿Convertir GeoJSON a Shapefile usando ogr2ogr?

24

Tengo un archivo GeoJson que quiero convertir a ESRI Shapefile usando ogr2ogr en FWTools.

Intenté usar

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

Tengo salida

ERROR 6: No se pueden crear campos de tipo StringList en capas de archivos de forma. ERROR 1: Intente escribir geometría no poligonal (POINT) para escribir shapefile. ERROR 1: Terminar la traducción prematuramente después de la traducción fallida de la capa OGRGeoJSON

La entrada de GeoJSON que estamos dando está en formato geojson estándar.

el contenido de geojson es como {para compartir tomé solo una parte de la matriz de características}

{"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
fuente
2
Bienvenido al foro SE.GIS. Mire una pregunta similar gis.stackexchange.com/questions/13762/…
Sunil
Gracias por darme la bienvenida :) Había pasado por ese enlace antes de publicar. No quiero usar FME, quiero hacerlo usando FWTools para Linux. Había convertido wkt a shapefile anteriormente, lo cual fue bastante satisfactorio, pero ahora tengo los mismos datos en formato geoJSON en lugar de wkt. y necesito tener el archivo shp, mientras trato de hacerlo obtengo los errores;
sidd.k
Estoy votando para mantenerlo abierto, ya que la pregunta vinculada no responde a esta pregunta.
Devdatta Tengshe
La conversión de sus datos de prueba funciona bien para mí con las versiones 1.9.2 y 1.10 de ogr2ogr. Se crea un archivo de forma con 1 polígono sin ningún error. Sus "FWTools for Linux" pueden ser demasiado viejas. Que ogr2ogr --versiondice
Hermann
1
El modificador --version aún no existía en la versión de ogr2ogr que se distribuyó con FWTools 2.0.6. También supongo que tampoco era compatible con GeoJSON. 2.0.6 es realmente antiguo (~ 2006), ¿hay alguna razón por la que no pueda usar una versión moderna de GDAL?
DavidF

Respuestas:

28

Debe forzar el tipo de geometría SHP (porque el tipo de geometría de GeoJSON Geometry Collection no es compatible con SHP) y usar la -skipfailuresopción:

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

(Probado con GDAL 1.10.0, publicado el 24/04/2013)

Antonio Falciano
fuente
2
Para aprovechar al máximo el Geojson, sugeriría ejecutar lo mismo para los puntos también (y líneas, si tiene alguno en el Geojson). De esa manera obtienes dos o tres archivos de forma de un Geojson.
AndreJ
@AndreJoost Estoy de acuerdo contigo, esto fue solo un ejemplo. Actualizo la respuesta teniendo en cuenta su sugerencia. Gracias.
Antonio Falciano
2
no es una solución, pero he tenido buena suerte usando una herramienta en línea construida con ogr2ogr: ogre.adc4gis.com
JasonBK