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

Antworten:


7

Sie können dies mit ST_ClusterIntersecting tun :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.