PostGIS: Wie füge ich zusammenhängende Features mit denselben Attributwerten zusammen?

9

Ich habe eine große PostGIS-Tabelle, in der Zeilenfunktionen gespeichert sind.

Ich möchte Features zusammenführen, die beide miteinander verbunden sind und identische Attributwerte haben. Hier ist ein Beispiel dafür, was ich erreichen möchte.

  • Die äußersten Merkmale (schwarze und blaue) werden nicht zusammengeführt, da sie nicht zusammenhängend sind, selbst wenn ihre Attributwerte gleich sind
  • Die Funktionen Grün und Rot werden zusammengeführt, da sie beiden Bedingungen entsprechen
  • Feature gelb bleibt wie bisher.

Wie würden Sie das mit einer SQL-Abfrage erreichen? Geben Sie hier die Bildbeschreibung ein

wiltomap
quelle

Antworten:

7

Sie können dies mit ST_ClusterIntersecting tun :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;
dbaston
quelle
Danke @dbaston! Ich werde es in den kommenden Tagen versuchen und dich wissen lassen.
Wiltomap
Die Funktion ST_ClusterIntersecting()ist in PostGIS 2.2 verfügbar ... Gibt es eine Lösung mit einer älteren Version? Ich bin auf PostGIS 2.1.8 und kann PostGIS momentan nicht aktualisieren.
Wiltomap
Nichts, was ich für gut halten würde ... es ist tatsächlich diese Situation, die mich zum Schreiben motiviert hat ST_ClusterIntersecting. Einige Ideen vor 2.2 sind bei gis.stackexchange.com/q/94203/18189
dbaston