Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengira Jarak Bulatan Hebat Menggunakan Hanya MySQL?
MySQL Great Circle Distance (Haversine Formula)
Artikel ini menangani cabaran untuk mengira jarak bulatan besar antara dua koordinat geografi menggunakan MySQL semata-mata . Pelaksanaan PHP tradisional, yang melibatkan berbilang pertanyaan SQL dan pengiraan yang rumit, boleh menyusahkan.
Penyelesaian
Untuk menukar kod PHP kepada MySQL tulen, kami memanfaatkan formula Haversine , persamaan matematik yang mengira jarak antara dua titik pada sfera. Formula ini disokong oleh fungsi MySQL ACOS() dan RADIANS().
Berikut ialah pertanyaan MySQL yang sepadan:
SELECT id, ( 3959 * ACOS( COS(RADIANS(37)) * COS(RADIANS(lat)) * COS(RADIANS(lon) - RADIANS(-122)) + SIN(RADIANS(37)) * SIN(RADIANS(lat)) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
Penjelasan
Dengan menggunakan pendekatan berasaskan MySQL ini, anda boleh mengira dengan cekap jarak bulatan antara koordinat tanpa memerlukan pengiraan PHP luaran atau SQL tambahan pertanyaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Jarak Bulatan Hebat Menggunakan Hanya MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!