Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengira Jarak Bulatan Besar dalam MySQL Menggunakan Formula Haversine?

Bagaimanakah Saya Boleh Mengira Jarak Bulatan Besar dalam MySQL Menggunakan Formula Haversine?

Linda Hamilton
Linda Hamiltonasal
2024-12-27 09:27:17291semak imbas

How Can I Calculate Great Circle Distance in MySQL Using the Haversine Formula?

MySQL: Pengiraan Jarak Bulatan Besar Menggunakan Formula Haversine

Pengenalan

Mengira jarak antara dua koordinat geografi pada sfera adalah tugas biasa dalam aplikasi geospatial. Satu pendekatan yang digunakan secara meluas untuk ini ialah formula Haversine, yang memberikan hasil yang tepat untuk jarak bulatan yang besar antara dua titik.

Menggunakan Formula Haversine dalam MySQL

Untuk melaksanakan formula Haversine dalam MySQL, kita boleh menggunakan langkah berikut:

  1. Tukar nilai koordinat (latitud dan longitud) kepada radian menggunakan fungsi RADIANS() tambah mereka bersama-sama.
  2. Darab hasil tambah daripada langkah 3 dengan jejari Bumi (6371 kilometer atau 3959 batu).
  3. Akhir sekali, hitung punca kuasa dua hasil daripada langkah 4 menggunakan fungsi SQRT().
  4. Contoh Pertanyaan SQL

Berikut ialah contoh pertanyaan SQL yang melaksanakan formula Haversine untuk mengira jarak bulatan besar antara dua koordinat:

Pertanyaan ini akan mengembalikan id dan jarak yang dikira untuk 20 lokasi terdekat dalam radius 25 kilometer ke koordinat (37, -122).

SELECT (
    6371 * ACOS(
        COS(RADIANS(37)) * COS(RADIANS(lat)) * 
        COS(RADIANS(lng) - RADIANS(-122)) + 
        SIN(RADIANS(37)) * SIN(RADIANS(lat))
    )
) AS distance 
FROM markers 
WHERE distance < 25
ORDER BY distance
LIMIT 0, 20;
Kesimpulan

Dengan menggunakan formula Haversine dalam MySQL, kita boleh menentukan dengan tepat jarak bulatan antara dua koordinat geografi. Teknik ini amat berguna untuk aplikasi berasaskan lokasi yang memerlukan pengiraan jarak yang tepat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Jarak Bulatan Besar dalam MySQL Menggunakan Formula Haversine?. 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