1
ความแตกต่างระหว่าง ST_D ภายในและ ST_ ระยะทางสำหรับการค้นหาใกล้เคียงใน PostGIS คืออะไร
ฉันมีบันทึกที่เก็บไว้ในตารางที่มีพิกัดละติจูด / ลองจิจูดเก็บไว้ในเขตเรขาคณิต ฉันต้องการค้นหาระเบียนทั้งหมดที่อยู่ใกล้กับจุดอ้างอิงที่ผู้ใช้ระบุ หมายเหตุ "ใกล้เคียง" อาจหมายถึงน้อยกว่า 100km (อาจเล็กกว่า) ST_DWithinตัวอย่างส่วนใหญ่ผมเห็นการใช้งาน มีเหตุผลที่คุณไม่สามารถใช้งานได้ST_Distanceหรือไม่? อะไรคือความแตกต่างระหว่างการใช้ST_DWithinและST_Distanceการทำสิ่งนี้? ตัวอย่างเช่น: SELECT name, ST_AsText(coords) FROM places WHERE ST_DWithin(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326), 1) VS SELECT name, ST_AsText(coords) FROM places WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1