Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Cari Latitud dan Longitud Terdekat dalam Pangkalan Data Menggunakan SQL?

Bagaimanakah Saya Boleh Cari Latitud dan Longitud Terdekat dalam Pangkalan Data Menggunakan SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-18 16:12:15989semak imbas

How Can I Find the Nearest Latitude and Longitude in a Database Using SQL?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn