Geometriefehler beim Importieren von Daten aus der Geodatabase der ESRI-Datei in PostGIS

8

Wenn ich den folgenden Befehl ausführe, um Daten von einer ESRI-fgdb nach postgis zu importieren ...

ogr2ogr -f "PostgreSQL" -a_srs "EPSG:28355" -t_srs "EPSG:3857" PG:"dbname=tp_test user=postgres port=54321 password=xxxxxxx host=localhost" -overwrite P:\2012\183_TownPlanning_Symbology\Working\QueryLayer\TP_Query_Final_28355.gdb

...Ich bekomme...!

Warnung 1: organisatePolygons () hat eine unerwartete Geometrie erhalten. Entweder ein Polygon mit Innenringen oder ein Polygon mit weniger als 4 Punkten oder eine Nicht-Polygon-Geometrie. Argumente als Sammlung zurückgeben. Warnung 1: Die Geometrie des Polygons kann nicht in einfache Geometrie übersetzt werden. Alle Polygone werden in einem Multipolygon enthalten sein.

Ich habe die Geometrie in ESRI überprüft und es werden keine Fehler gemeldet. Ich führe Multipart zu Singlepart aus, um zu sehen, ob dies die Probleme behebt, aber dies stürzt Arcmap 10.1 ab, während es aufgelöst wird. Es wurde eine Sortierung ohne Probleme ausgeführt, und Sie können den Datensatz öffnen.

Ich habe das Dataset früher erfolgreich importiert, musste dann aber das ESRI-Würfel-Tool ausführen , um die großen Polygone auf nicht mehr als 15.000 Scheitelpunkte aufzuteilen, damit es schneller verarbeitet wird. Geben Sie hier die Bildbeschreibung ein

Ich bin neu bei Postgis.

Gibt es eine Möglichkeit, die Probleme in der neuen GDB zu beheben oder die Polygone in Postgis selbst aufzuteilen?

GeorgeC
quelle

Antworten:

2

Wenn sich Ihre Daten bereits in PostGIS befinden, führen Sie Folgendes aus:

select * from table where ST_NPoints(the_geom) < 4

Dadurch werden alle Zeilen zurückgegeben, die die Warnung verursachen, dh Sie können Datenfehler in PostGIS aufspüren.

Simplexio
quelle
Ich habe nur den Datensatz in Postgis von BEFORE Running Dice. Wenn ich den vorhandenen Postgis-Datensatz verwenden möchte, benötige ich ein Dice-ähnliches Werkzeug, um jedes Polygon auf <15.000 Scheitelpunkte aufzuteilen.
GeorgeC
Sie könnten versuchen, wenn Fehler von diesen Daten von runnis isValid () und ST_NPoints () zu Daten kommen
simplexio