PostGIS: làm thế nào để hợp nhất các tính năng liền kề chia sẻ cùng các giá trị thuộc tính?


9

Tôi có một tính năng dòng lưu trữ bảng PostGIS lớn.

Tôi muốn hợp nhất các tính năng được kết nối với nhau và có các giá trị thuộc tính giống hệt nhau. Dưới đây là một ví dụ về những gì tôi muốn đạt được.

  • Các tính năng ngoài cùng (màu đen và màu xanh) không được hợp nhất vì không liền kề ngay cả khi các giá trị thuộc tính của chúng giống nhau
  • Các tính năng xanh và đỏ được hợp nhất vì chúng phù hợp với cả hai điều kiện
  • Tính năng màu vàng được để lại như trước.

Làm thế nào bạn sẽ đạt được điều đó với một truy vấn SQL? nhập mô tả hình ảnh ở đây

Câu trả lời:


7

Bạn có thể làm điều này với ST_ClusterIntersecting :

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

Cảm ơn @dbaston! Tôi sẽ thử nó trong những ngày tới và cho bạn biết.
wiltomap

Chức năng ST_ClusterIntersecting()có sẵn từ PostGIS 2.2 ... Có giải pháp nào với phiên bản cũ hơn không? Tôi đang sử dụng PostGIS 2.1.8 và hiện tại tôi không thể nâng cấp PostGIS.
wiltomap

Không có gì mà tôi cho là tốt .... thực sự chính tình huống này đã thúc đẩy tôi viết ST_ClusterIntersecting. Một số ý tưởng trước 2.2 có tại gis.stackexchange.com/q/94203/18189
dbaston
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.