PostGIS: bagaimana cara menggabungkan fitur berdekatan yang berbagi nilai atribut yang sama?

9

Saya memiliki fitur penyimpanan tabel PostGIS yang besar.

Saya ingin menggabungkan fitur yang keduanya terhubung satu sama lain dan telah memberikan nilai atribut yang identik. Berikut ini contoh yang ingin saya capai.

  • Fitur terluar (hitam dan biru) tidak digabungkan karena tidak ada bersebelahan bahkan jika nilai atributnya sama
  • Fitur hijau dan merah digabung karena keduanya cocok dengan kedua kondisi
  • Fitur kuning dibiarkan seperti sebelumnya.

Bagaimana Anda mencapainya dengan query SQL? masukkan deskripsi gambar di sini

layu
sumber

Jawaban:

7

Anda dapat melakukan ini dengan ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;
dbaston
sumber
Terima kasih @daston! Saya akan mencobanya dalam beberapa hari mendatang dan memberi tahu Anda.
wiltomap
Fungsi ST_ClusterIntersecting()ini tersedia dari PostGIS 2.2 ... Apakah ada solusi dengan versi yang lebih lama? Saya menggunakan PostGIS 2.1.8 dan saya tidak dapat memutakhirkan PostGIS untuk saat ini.
wiltomap
Tidak ada yang saya anggap baik .... sebenarnya situasi inilah yang memotivasi saya untuk menulis ST_ClusterIntersecting. Beberapa ide pra-2.2 ada di gis.stackexchange.com/q/94203/18189
dbaston