Tengo registros almacenados en una tabla con coordenadas de latitud / longitud almacenadas en un campo de geometría. Quiero encontrar todos los registros cercanos a un punto de referencia proporcionado por el usuario. Tenga en cuenta que "cerca" probablemente significa menos de 100 km (posiblemente incluso más pequeño).
La mayoría de los ejemplos que veo uso ST_DWithin
. ¿Hay alguna razón que no puedas usar ST_Distance
? ¿Cuál es la diferencia entre usar ST_DWithin
y ST_Distance
hacer esto?
Por ejemplo:
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