Jaka jest różnica między ST_DWithin a ST_Distance dla wyszukiwania zbliżeniowego w PostGIS?


14

Mam rekordy zapisane w tabeli ze współrzędnymi szerokości i długości geograficznej zapisanymi w polu geometrii. Chcę znaleźć wszystkie rekordy w pobliżu punktu odniesienia podanego przez użytkownika. Uwaga „w pobliżu” prawdopodobnie oznacza mniej niż 100 km (być może nawet mniejszy).

Większość przykładów używam ST_DWithin. Czy istnieje powód, dla którego nie możesz użyć ST_Distance? Jaka jest różnica między używaniem ST_DWithina ST_Distancerobieniem tego?

Na przykład:

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

Odpowiedzi:


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.