3
จะสร้างบรรทัดเพื่อให้เห็นความแตกต่างระหว่างคุณลักษณะรูปหลายเหลี่ยมใน PostGIS ได้อย่างไร
ฉันมีตาราง PostGIS polygon_bพร้อมคุณสมบัติรูปหลายเหลี่ยม นอกจากนี้ยังมีตารางpolygon_aที่มีรูปหลายเหลี่ยมเหมือนกันpolygon_bแต่มีการเปลี่ยนแปลงเล็กน้อย ตอนนี้ฉันต้องการสร้างเส้นเพื่อให้เห็นความแตกต่างระหว่างคุณลักษณะรูปหลายเหลี่ยม ฉันคิดว่าST_ExteriorRingและST_Differenceจะทำงาน แต่ประโยคที่ดูเหมือนว่าจะค่อนข้างยุ่งยาก CREATE VIEW line_difference AS SELECT row_number() over() AS gid, g.geom::geometry(LineString, yourSRID) AS geom FROM (SELECT (ST_Dump(COALESCE(ST_Difference(ST_ExteriorRing(polygon_a.geom), ST_ExteriorRing(polygon_b.geom))))).geom AS geom FROM polygon_a, polygon_b WHERE -- ? ) AS g; มีใครช่วยฉันบ้าง แก้ไข 1 ตามที่โพสต์โดย 'เอียง' ฉันได้ลองแล้วST_Overlaps(polygon_a.geom, polygon_b.geom) AND NOT ST_Touches(polygon_a.geom, polygon_b.geom)แต่ผลลัพธ์ไม่เป็นไปตามที่คาดไว้ CREATE VIEW line_difference AS …