Dalam panduan Python ini, kita akan menyelidiki formula Haversine, alat yang berkuasa untuk menentukan jarak dan bearing antara dua GPS koordinat.
Masalah:
Kami menyasarkan untuk mengira jarak dan bearing antara dua titik GPS tetapi menghadapi percanggahan dalam output galas, yang menghasilkan nilai negatif manakala ia sepatutnya berada dalam julat 0-360 darjah.
Kod:
Kod yang disediakan menggunakan formula Haversine untuk mengira kedua-dua jarak dan bearing:
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): # Convert decimal degrees to radians lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # Haversine 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)) r = 6371 # Radius of earth in kilometers return c * r
Pengiraan Bearing :
Isu dengan kod yang disediakan terletak pada pengiraan bearing. Untuk membetulkannya, kita perlu mengubah suai garisan:
Bearing = atan2(cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1), sin(lon2-lon1)*cos(lat2))
Kepada:
Bearing = degrees(atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1)))
Pelarasan ini memastikan output galas sejajar dengan julat jangkaan 0-360 darjah.
Kesimpulan:
Dengan pengiraan bearing tetap, kod kini dengan tepat menentukan jarak dan galas antara titik GPS yang disediakan. Formula Haversine terbukti sebagai alat yang teguh untuk pengiraan geografi, membolehkan pengukuran jarak yang tepat di permukaan Bumi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Nilai Bearing Negatif Apabila Menggunakan Formula Haversine dalam Python untuk Mengira Jarak dan Bearing Antara Titik GPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!