PostGIS: วิธีผสานคุณสมบัติที่ต่อเนื่องกันซึ่งใช้ค่าคุณลักษณะเดียวกัน


9

ฉันมีตาราง PostGIS ขนาดใหญ่ที่จัดเก็บคุณสมบัติของเส้น

ฉันต้องการรวมคุณสมบัติที่เชื่อมต่อซึ่งกันและกันและให้ค่าคุณลักษณะเหมือนกัน นี่คือตัวอย่างด้านล่างของสิ่งที่ฉันต้องการบรรลุ

  • ฟีเจอร์ outmost (สีดำและสีน้ำเงิน) ไม่ได้ถูกผสานเพราะไม่มีที่อยู่ติดกันแม้ว่าค่าคุณลักษณะจะเหมือนกัน
  • มีการรวมกันของคุณสมบัติสีเขียวและสีแดงเนื่องจากตรงกับเงื่อนไขทั้งสอง
  • คุณสมบัติสีเหลืองถูกทิ้งไว้เหมือนเดิม

คุณจะทำให้สำเร็จด้วยแบบสอบถาม SQL ได้อย่างไร ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


7

คุณสามารถทำได้ด้วยST_ClusterIntersecting :

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

ขอบคุณ @ dbaston! ฉันจะลองในไม่กี่วันข้างหน้าและแจ้งให้คุณทราบ
wiltomap

ฟังก์ชั่นST_ClusterIntersecting()นี้สามารถใช้งานได้จาก PostGIS 2.2 ... มีวิธีแก้ปัญหาด้วยเวอร์ชั่นที่เก่ากว่าหรือไม่? ฉันใช้ PostGIS 2.1.8 และฉันไม่สามารถอัปเกรด PostGIS ได้ในขณะนี้
wiltomap

ไม่มีอะไรที่ฉันต้องการพิจารณาที่ดี .... ST_ClusterIntersectingก็จริงสถานการณ์ที่กระตุ้นให้ฉันเขียน แนวคิด pre-2.2 บางอย่างอยู่ที่gis.stackexchange.com/q/94203/18189
dbaston
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.