Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Jarak Antara Dua Koordinat Geografi dalam MySQL?
Menentukan Jarak Antara Koordinat Geografi dalam MySQL Menggunakan Latitud dan Longitud
Pertanyaan anda menggunakan formula hukum kosinus sfera untuk mengira jarak antara satu titik dan semua yang lain. Untuk mencari jarak antara dua titik tertentu, ubah suai pertanyaan anda seperti berikut:
SELECT a.city AS from_city, b.city AS to_city, 111.111 * DEGREES(ACOS(LEAST(1.0, COS(RADIANS(a.Latitude)) * COS(RADIANS(b.Latitude)) * COS(RADIANS(a.Longitude - b.Longitude)) + SIN(RADIANS(a.Latitude)) * SIN(RADIANS(b.Latitude))))) AS distance_in_km FROM city AS a JOIN city AS b ON a.id <> b.id WHERE a.city = 3 AND b.city = 7;
Pertanyaan ini mendapatkan semula pasangan koordinat untuk dua bandar (3 dan 7) dan menggunakan formula, menghasilkan jarak dalam kilometer.
Untuk titik berdekatan, elakkan menggunakan penapis berasaskan jarak kerana ia boleh menjadi perlahan. Sebaliknya, gunakan teknik pengiraan kotak sempadan, seperti yang diterangkan di sini: http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/.
Penyelesaian Moden (2022)
Untuk mengikuti perkembangan teknologi terkini, pertimbangkan untuk menggunakan yang dipendekkan berikut kod:
SELECT ST_Distance_Sphere( point(-87.6770458, 41.9631174), point(-73.9898293, 40.7628267))
Pertanyaan ini menggunakan fungsi ST_Distance_Sphere() untuk mengira jarak antara dua titik.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Jarak Antara Dua Koordinat Geografi dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!