Ich habe Datensätze in einer Tabelle mit Breiten- / Längenkoordinaten in einem Geometriefeld gespeichert. Ich möchte alle Datensätze in der Nähe eines vom Benutzer angegebenen Referenzpunkts finden. Hinweis: "In der Nähe" bedeutet wahrscheinlich weniger als 100 km (möglicherweise sogar noch kleiner).
Die meisten Beispiele, die ich sehe, verwenden ST_DWithin
. Gibt es einen Grund, den Sie nicht verwenden können ST_Distance
? Was ist der Unterschied zwischen der Verwendung von ST_DWithin
und ST_Distance
, um dies zu tun?
Beispielsweise:
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