Saya memiliki catatan yang disimpan di tabel dengan koordinat lintang / bujur yang disimpan di bidang geometri. Saya ingin menemukan semua catatan di dekat titik referensi yang disediakan pengguna. Catatan "di dekatnya" mungkin berarti kurang dari 100 km (mungkin lebih kecil).
Sebagian besar contoh yang saya lihat digunakan ST_DWithin
. Apakah ada alasan yang tidak bisa Anda gunakan ST_Distance
? Apa perbedaan antara menggunakan ST_DWithin
dan ST_Distance
melakukan ini?
Sebagai contoh:
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