1
เข้าร่วมตามการทับซ้อนสูงสุดใน PostGIS / PostGresQL
ฉันมีรูปหลายเหลี่ยมสองชุดในสองตาราง ชุดทับซ้อนกัน สำหรับรูปหลายเหลี่ยมแต่ละอันในชุด A ฉันต้องการรับ ID ของรูปหลายเหลี่ยมในชุด B ที่ซ้อนทับกันมากที่สุด ฉันใช้ PostgreSQL กับส่วนขยาย PostGIS ฉันรู้เพียงพอเกี่ยวกับ SQL ที่จะรู้ว่าคุณสามารถเข้าร่วมได้ตามเงื่อนไขจริง / เท็จเท่านั้น ดังนั้นสิ่งนี้จะไม่ทำงาน: SELECT a.id as a_id, b.id as b_id, FROM a JOIN b ON max(ST_Area(ST_Intersection(a.geom, b.geom))) เนื่องจาก max () ไม่สามารถอยู่ในอนุประโยค ON ST_Intersects()คือการทดสอบจริง / เท็จดังนั้นฉันสามารถเข้าร่วมในนั้น แต่รูปหลายเหลี่ยมในชุดมักจะทับซ้อนที่มีมากกว่าหนึ่งรูปหลายเหลี่ยมที่อยู่ในชุด B และฉันต้องการที่จะรู้ว่าที่หนึ่งซ้อนทับมากที่สุด ST_Intersects น่าจะแค่คืนค่า ID ที่ทับซ้อนกันแรกที่เจอโดยไม่คำนึงถึงขอบเขตของการทับซ้อน ดูเหมือนว่ามันควรจะเป็นไปได้ แต่มันเกินฉัน …
11
sql
postgresql
postgis