Dies ist eine Fortsetzung der vorherigen Frage . Sie werden sehen, dass ich ein neuer PostGIS-Benutzer bin.
Ich habe die Gültigkeit der Topologie in meinen Daten überprüft und im Landbedeckungsdatensatz (Polygon) etwa 1700 Topologieprobleme gefunden. Dies sind alles "Ring Self_intersection".
Mit einigen nützlichen Informationen in dieser Präsentation von Paul Ramsay (Seite 20) habe ich versucht, meine Daten entsprechend zu puffern:
UPDATE schema.data SET the_geom = buffer (the_geom, 0.0) WHERE isvalid (the_geom) = false und isvalid (buffer (the_geom, 0.0)) = true;
Aber ich bekomme die Antwort:
HINWEIS: Ring-Selbstschnittpunkt am oder in der Nähe des Punkts (bearbeitet) FEHLER: Neue Zeile für die Beziehung "sgm_buffer" verletzt die Prüfbedingung "erzwingen_geotype_the_geom"
********** Error **********
FEHLER: Neue Zeile für die Beziehung "sgm_buffer" verletzt die Prüfbedingung "erzwingen_geotype_the_geom" SQL-Status: 23514
Ich habe auch nur versucht:
UPDATE csgn.sgm_buffer SET the_geom = buffer (the_geom, 0.0)
und bekomme:
FEHLER: Neue Zeile für die Beziehung "sgm_buffer" verletzt die Prüfbedingung "erzwingen_geotype_the_geom"
********** Error **********
FEHLER: Neue Zeile für die Beziehung "sgm_buffer" verletzt die Prüfbedingung "erzwingen_geotype_the_geom" SQL-Status: 23514
Nehme ich also an, dass diese Puffertechnik bei meinen Problemen nicht funktioniert? Oder mache ich etwas falsch?
Herr Ramsay fährt dann im selben Dokument fort und schlägt eine zusätzliche Technik vor, um mit "Zahl von 8" -Polygonen umzugehen. Ich verstehe nicht ganz, wie ich das vollständig in Code schreiben soll (oder was es tut und ob es mir helfen wird):
SELECT ST_BuildArea (ST_Union ('LINESTRING EMPTY', ST_ExteriorRing ('POLYGON ((...))')
Also ... kann jemand helfen? Dies ist ein wahrer Albtraum mit meinen engen Zeitplänen und begrenzten Fähigkeiten in PostGIS.
ST_Multi()
, um alle Polygone zu zwingen, MULTIPOLYGON
s zu sein (dies ist eine Annahme)