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.