У меня есть записи, хранящиеся в таблице с координатами широты / долготы, хранящихся в поле геометрии. Я хочу найти все записи рядом с предоставленной пользователем контрольной точкой. Обратите внимание, что «рядом», вероятно, означает менее 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