我有存储在表中的记录,而纬度/经度坐标存储在几何字段中。我想查找用户提供的参考点附近的所有记录。注意“附近”可能意味着小于100公里(可能更小)。
我看到的大多数示例都可以使用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)
与
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1