Eu tenho registros armazenados em uma tabela com coordenadas de latitude / longitude armazenadas em um campo de geometria. Desejo encontrar todos os registros próximos a um ponto de referência fornecido pelo usuário. Nota "nas proximidades" provavelmente significa menos de 100 km (possivelmente até menor).
A maioria dos exemplos que vejo são úteis ST_DWithin
. Existe um motivo para você não usar ST_Distance
? Qual é a diferença entre usar ST_DWithin
e ST_Distance
fazer isso?
Por exemplo:
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