Gunakan pertanyaan SQL untuk mencari latitud dan longitud terdekat
Apabila mendapatkan semula data daripada pangkalan data, anda selalunya perlu mencari rekod latitud dan longitud yang paling hampir dengan titik tertentu. Ini amat berguna dalam senario seperti mencari perniagaan berdekatan, tarikan atau tempat menarik lain.
Mata Pertanyaan
Untuk melaksanakan tugas ini, anda memerlukan pertanyaan SQL yang boleh mengira jarak antara dua titik berdasarkan latitud dan longitudnya. Ini melibatkan penggunaan formula Haversine yang mengambil kira kelengkungan Bumi. Selain itu, anda perlu menentukan jarak maksimum yang dibenarkan untuk mendapatkan semula rekod.
Struktur pertanyaan SQL
Pertanyaan SQL berikut memenuhi keperluan ini:
<code class="language-sql">SELECT latitude, longitude, SQRT( POW(69.1 * (latitude - [startlat]), 2) + POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance FROM TableName HAVING distance < [max_distance] ORDER BY distance;</code>
[startlat]
dan [startlng]
mewakili latitud dan longitud titik permulaan. [max_distance]
Menentukan jarak maksimum di mana rekod perlu diambil. Penerangan:
Pertanyaan ini menggunakan formula Haversine untuk mengira jarak antara latitud dan longitud setiap rekod dan titik permulaan yang diberikan. Lajur "jarak" menyimpan jarak yang terhasil. Rekod yang jaraknya kurang daripada jarak maksimum yang ditentukan kemudiannya dipilih dan diisih mengikut jaraknya dari titik permulaan.
Dengan menggunakan pertanyaan ini, anda boleh mencari rekod latitud dan longitud yang paling hampir dengan titik tertentu, dengan mengambil kira kekangan jarak.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Latitud dan Longitud Terdekat dalam Pangkalan Data Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!