Multipolygone und Geometrieverschneidung

Hallo,

ich habe u.a die Gebäude und Flurstücke der Liegenschaftskarte in der PostgreSQL-DB und für die Zwecke der Speicherung der Geometrien und externen Verarbeitung funktioniert das auch einwandfrei.

Seit dem ich aber auf der DB versuche Geometrieverschneidungen durchzuführen, bricht der Prozess bei nicht gültigen (isvalid()=FALSE) Geometrien mit dem Hinweis auf Fehler in der Topologie ab. Soweit in Ordnung.
Nachdem ich aber die Geometrien die offensichtlich nicht in Ordnung sein sollen geprüft habe, ist mir bei einigen aufgefallen, dass offensichtlich PostGIS mit Multipolygonen, die sich in einem Punkt berühren Probleme hat.

Im PostGIS Manual wird unter 4.1 auf die OGC Simple Features Spezificationen verwiesen und unter 6.1.14 sind auch in diesem Werk die MultiPolygone aufgeführt.
Für mein Verständnis verstoßen meine beschreibenen Geometrien nicht gegen diese Regeln.

Wer hat noch solche Geometrien in seiner DB oder kann mir einen Tipp geben. Ist das evtl. ein Fehler in PostGIS?

Danke

Thomas Haas


Geodatenzentrum NRW
Muffendorferstraße 19-21
53177 Bonn

Hallo,

meine Aussagen beziehen sich noch auf die PostGIS Versionen 1.3.6.

Ich versuche Multigeometrien zu vermeiden. Der Grund dafür ist der folgende:
PostGIS hat den Nachteil, dass zum Beispiel bei der Funktion isvalid(geom)
immer nur die erste Geometrie einer Multigeometrie geprüft wird! Die folgenden Geometrien werden nicht geprüft!
Ein Vorschlag ist, splittet die Multipolygone in Polygone und schaut ob
die Fehler noch vorhanden sind.

mfg
Nuadu

Ich hatte schon ein ähnliches Problem. Letztendlich kann ich Nuadus Tip untermauern. Wie das bei der aktuellen Version gelöst ist, weiß ich nicht. In älteren Versionen wurde auf jeden Fall nur die erste Geometrie geprüft. Ich habe damals letztendlich eine kaputte Geometrie gefunden. Nachdem das Problem behoben war hat es dann auch mit der Verschneidung geklappt.

Hallo Nuadu und Maik,

vielen Dank für Eure Antworten.

Ich verstehe nur nicht, warum mein Multipolygon, bei dem sich zwei Polygone in einem Punkt berühren als nicht valide ausgegeben werden und MP mit Exclaven als valide. Worin unterscheiden sich beide, wenn nur die erste Geometrie geprüft wird?
Zu Testzwecken habe ich bei diesem MP das zweite Poygon um einen Millimeter verschoben und schon ist diese Konstrukt valide.

Ich werde wohl in Erwägung zieghen die MP in Polygone aufzuteilen.

Gruß
Thomas Haas

Hallo,

es gibt eigentlich nur zwei Grundsätze die der Anwender bei Multipolygonen beachten muss:


  1. Die Polygone dürfen sich nur mit ihrem äußeren Ringen berühren
  2. die anzahl derSchnittpunkte zwischen zwei Polygonen sind endlich

Kann es sein, dass ein innerer Ring den äußeren Ring berührt? Das könnte ein
Fehler sein. Bin mir aber auch nicht sicher.
Vielleicht könntet Ihr das Multipolygon verfremden und uns bereitstellen, dann könnten wir mal drüber schauen.

mfg
Nuadu