Versuchen Sie -nlt geometry
, Ihrem Ogr-Skript Folgendes hinzuzufügen:
ogr2ogr -skipfailures -f "ESRI Shapefile" myshape.shp mygeojson.geojson -nlt geometry
Ich habe das Problem festgestellt, das Sie mit ogr2ogr beschreiben, um Datensätze zu übersetzen, die sowohl einteilige als auch mehrteilige Funktionen in derselben Ebene enthalten. Zum Beispiel POINT und MULTIPOINT, LINE AND MULTILINE sowie POLYGON und MULTIPOLYGON.
Standardmäßig möchte OGR, dass Sie die Konvention einhalten und nur einen Feature-Typ pro Dataset verwenden. Wenn Sie gegen die Regel verstoßen, gibt OGR einen generischen Fehler aus und empfiehlt das -skipfailures
Flag. Dies kann irreführend sein, wenn das eigentliche Problem gemischte / angepasste Geometrien in derselben Ebene sind.
Da das ESRI-Shapefile ein- / mehrteilige Features in derselben Ebene zulässt, müssen Sie erkennen, dass OGR diesen Fehler möglicherweise auslöst, selbst wenn Sie gültige Geometrien haben. In diesem Szenario haben Sie zwei Möglichkeiten: 1) Konvertieren Sie mehrteilige Features in Singlepart (was ogr über das -explodecollections
Flag tun kann ) oder 2) Verwenden Sie das -nlt
Flag und geben Sie es GEOMETRY
als Option an. Mit dieser -nlt GEOMETRY
Option können Sie eine Mischung von Feature-Typen in derselben Ebene kombinieren. Infolgedessen wird OGR die Best Practices natürlich nicht schützen.
Wenn Ihre GeoJSON-Datei als ESRI-Shapefile "ins Leben gerufen" wurde, sind möglicherweise sowohl POINT- als auch MULTIPOINT-Funktionen in diesem Dataset enthalten. In diesem Fall kann dieses Problem auch bei gültigen Punkten auftreten.
Nach meinem Verständnis ist das beabsichtigte Verhalten, dass ein ungültiges Feature übersprungen wird und die Konvertierung mit dem nächsten gültigen Feature fortgesetzt wird, anstatt anzuhalten.
Es scheint, dass Sie alles richtig machen, also weiß ich nicht, was los ist! Haben Sie versucht, in ein anderes Format zu wechseln, um zu sehen, ob dies funktioniert?
quelle