J'ai des enregistrements stockés dans une table avec des coordonnées de latitude / longitude stockées dans un champ de géométrie. Je souhaite trouver tous les enregistrements à proximité d'un point de référence fourni par l'utilisateur. Notez que «à proximité» signifie probablement moins de 100 km (peut-être même plus petit).
La plupart des exemples que je vois utiliser ST_DWithin
. Y a-t-il une raison que vous ne pouvez pas utiliser ST_Distance
? Quelle est la différence entre utiliser ST_DWithin
et ST_Distance
faire cela?
Par exemple:
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_DWithin(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326), 1)
contre
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1