Intente agregar -nlt geometry
a su script ogr:
ogr2ogr -skipfailures -f "ESRI Shapefile" myshape.shp mygeojson.geojson -nlt geometry
He experimentado el problema que usted describe usando ogr2ogr para traducir conjuntos de datos que contienen características tanto de una sola parte como de varias partes en la misma capa; por ejemplo, POINT y MULTIPOINT, LINE Y MULTILINE, y POLYGON y MULTIPOLYGON.
De manera predeterminada, OGR quiere que obedezca las convenciones y use solo un tipo de característica por conjunto de datos. Si infringe la regla, OGR arrojará un error genérico y recomendará la -skipfailures
bandera. Esto puede ser engañoso si el problema real son las geometrías mixtas / combinadas en la misma capa.
Dado que el archivo de forma ESRI permite características de una o varias partes en la misma capa, debe tener en cuenta que OGR puede arrojar este error incluso si tiene geometrías válidas. En ese escenario, tiene dos opciones: 1) Convertir características multiparte en una sola parte (que ogr puede hacer a través de la -explodecollections
bandera), o 2) usar la -nlt
bandera y especificar GEOMETRY
como opción. La -nlt GEOMETRY
opción le permite combinar una combinación de tipos de entidades en la misma capa. Por supuesto, como consecuencia, OGR no protegerá las mejores prácticas.
Si su archivo GeoJSON "comenzó su vida" como un archivo de forma ESRI, es posible que tenga las características POINT y MULTIPOINT contenidas en ese conjunto de datos, en cuyo caso es posible que encuentre este problema incluso con puntos válidos.
En mi opinión, el comportamiento previsto es que si se encuentra una característica no válida, se omitirá y la conversión continuará con la siguiente característica válida en lugar de detenerse.
Parece que estás haciendo todo correctamente, ¡así que no sé qué pasa! ¿Has intentado ir a un formato diferente solo para ver si eso funciona?
fuente