Cara Mendapatkan Keputusan dalam Jejari Penanda daripada Pangkalan Data: Pengiraan Jarak Tepat
Untuk menentukan dengan tepat keputusan yang termasuk dalam jejari penanda yang ditentukan daripada pangkalan data, adalah penting untuk mempertimbangkan persamaan bulatan:
(x-x1)^2 + (y - y1)^2 = r^2
di mana (x,y) mewakili titik dalam bulatan, (x1, y1) ialah pusat bulatan dan r ialah jejarinya .
Dalam konteks soalan ini, pusat bulatan ialah lokasi penanda pengguna (latitud dan longitud), manakala padanan atau keputusan yang berpotensi diwakili oleh titik dalam bulatan. Jejari ditetapkan kepada 1 kilometer.
Untuk menangani isu unit yang berbeza (darjah untuk latitud dan longitud berbanding kilometer untuk jejari), persamaan diubah suai seperti berikut:
((x-x1)*111.12)^2 + ((y-y1)*111.12)^2 = 4 (where 2 is the radius in kilometers and 111.12 represents the conversion factor from degrees to kilometers)
Berdasarkan persamaan ini, pernyataan SQL untuk mendapatkan hasil yang bersilang dengan bulatan penanda boleh ditulis sebagai:
SELECT A.user_id, A.radius_id, A.latitude, A.logitude FROM UserA AS A, (SELECT user_id, latitude, longitude FROM UserB WHERE user_id = 8) AS B WHERE (POW((A.latitude-B.latitude)*111.12, 2) + POW((A.longitude - B.longitude)*111.12, 2)) <= 4
Atas ialah kandungan terperinci Cara Mendapatkan Keputusan Dalam Jejari Penanda daripada Pangkalan Data: Pendekatan SQL untuk Pengiraan Jarak Tepat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!