วิธีการรวมเชิงพื้นที่ของจุดและรูปหลายเหลี่ยมใน PostGIS


13

ฉันมีชุดข้อมูลพ้อยท์ที่แสดงถึงครัวเรือนที่ฉันต้องการเชื่อมโยงกับเลเยอร์พัสดุ (เช่นกำหนด parcel_id) ด้วย ArcMap ฉันสามารถรวมรูปหลายเหลี่ยมเข้ากับจุดและระบุว่าการเข้าร่วมมีรัศมีการค้นหาที่แน่นอนและใช้รูปหลายเหลี่ยมที่ใกล้ที่สุด

ฉันต้องการทำสิ่งนี้กับ postgres และสงสัยว่าวิธีที่ชาญฉลาดที่สุดในการทำเช่นนี้คืออะไร ฉันไม่สามารถใช้ ST_contain ได้เพราะมีคะแนนหล่นมาจากถนนและไม่ได้อยู่ในพัสดุจริง แทน ST_contain มีฟังก์ชันอื่นที่อนุญาตให้ใช้การตรวจสอบความใกล้ชิดหรือไม่?

update households h set parcel_id = p.parcel_id 
from parcels p where ST_contains(p.the_geom, h.xy);

คำตอบ:


8

สำหรับสิ่งที่คุณต้องการบรรลุฉันคิดว่าST_D ภายในจะทำงาน จากเอกสารไซต์ PostGIS:

ST_D ภายใน - คืนค่าเป็นจริงถ้ารูปทรงอยู่ภายในระยะทางที่กำหนดซึ่งกันและกัน สำหรับหน่วยเรขาคณิตที่อยู่ในการอ้างอิงเชิงพื้นที่และสำหรับหน่วยทางภูมิศาสตร์อยู่ในหน่วยเมตรและการวัดเริ่มต้นที่ use_spheroid = true (วัดรอบทรงกลม) เพื่อการตรวจสอบที่เร็วขึ้น use_spheroid = false เพื่อวัดตามทรงกลม


สิ่งนี้อาจใช้งานได้ แต่เคล็ดลับคือตั้งเกณฑ์การค้นหาที่เหมาะสม ตั้งค่ามันสูงเกินไปและฉันได้รับมากกว่าหนึ่งนัดตั้งมันต่ำเกินไปและฉันก็ไม่มี หรือตั้งค่าสูงและทิ้งบันทึกการแข่งขันพิเศษ
ako
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.