Tôi có các bản ghi được lưu trữ trong một bảng có tọa độ vĩ độ / kinh độ được lưu trữ trong trường hình học. Tôi muốn tìm tất cả các bản ghi gần một điểm tham chiếu do người dùng cung cấp. Lưu ý "gần đó" có thể có nghĩa là dưới 100km (thậm chí có thể nhỏ hơn).
Hầu hết các ví dụ tôi thấy sử dụng ST_DWithin. Có một lý do bạn không thể sử dụng ST_Distance? Sự khác biệt giữa sử dụng ST_DWithinvà ST_Distanceđể làm điều này là gì?
Ví dụ:
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_DWithin(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326), 1)
đấu với
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1