Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Formula Haversine Mengira Jarak dan Galas Antara Titik GPS dalam Python?
Dalam dunia navigasi, menentukan jarak dan bearing antara dua titik GPS adalah penting. Formula Haversine menyediakan cara yang tepat untuk mengira nilai ini menggunakan geometri sfera.
Untuk mengira jarak antara dua titik GPS, kita perlu menukar latitud dan longitudnya daripada darjah perpuluhan kepada radian. Kami kemudian menggunakan formula:
dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon/2) ** 2 c = 2 * asin(sqrt(a)) distance = c * r
di mana dlon dan dlat mewakili perbezaan longitud dan latitud, a ialah nilai perantaraan, dan r ialah jejari Bumi (6371 kilometer untuk kilometer atau 3956 batu untuk batu).
Selain menentukan jarak, kita juga boleh mencari bearing (azimut) dari titik pertama ke titik kedua menggunakan formula Haversine:
y = sin(dlon) * cos(lat2) x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon) bearing = atan2(y, x)
di mana dlon ialah perbezaan longitud, lat1 dan lat2 ialah latitud bagi dua titik, x dan y ialah nilai perantaraan, dan bearing mewakili azimut yang diukur dalam radian dari utara mengikut arah jam.
Berikut ialah pelaksanaan Python bagi formula Haversine untuk mengira jarak dan bearing:
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 return c * r
Atas ialah kandungan terperinci Bagaimanakah Formula Haversine Mengira Jarak dan Galas Antara Titik GPS dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!