Ho dei record memorizzati in una tabella con coordinate di latitudine / longitudine memorizzate in un campo della geometria. Voglio trovare tutti i record nelle vicinanze di un punto di riferimento fornito dall'utente. Nota "nelle vicinanze" probabilmente significa meno di 100 km (forse anche più piccolo).
La maggior parte degli esempi che vedo usare ST_DWithin
. C'è un motivo che non puoi usare ST_Distance
? Qual è la differenza tra usare ST_DWithin
e ST_Distance
fare questo?
Per esempio:
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