Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Pengiraan Jarak Latitud/Longitud Saya Tidak Betul?

Mengapa Pengiraan Jarak Latitud/Longitud Saya Tidak Betul?

Susan Sarandon
Susan Sarandonasal
2024-11-06 00:00:03234semak imbas

Why is My Latitude/Longitude Distance Calculation Incorrect?

Mengira Jarak Menggunakan Latitud dan Longitud: Menangani Ralat Pengekodan

Semasa cuba melaksanakan formula untuk mencari jarak berdasarkan latitud dan longitud, pengguna menemui hasil yang tidak dijangka. Formula, seperti yang diberikan dalam applet yang dirujuk, berfungsi dengan betul untuk mata ujian yang disediakan. Walau bagaimanapun, kod pengguna mengembalikan nilai jarak yang tidak tepat.

Pemeriksaan Kod

Setelah meneliti kod, didapati bahawa pengguna menggunakan kaedah pengiraan jarak Vincenty yang telah ditamatkan. , yang telah digantikan dengan fungsi geopy.distance.distance() yang lebih tepat dalam GeoPy versi 1.13. Formula haversine, yang digunakan oleh kod pengguna, menganggap model bumi sfera dan boleh memperkenalkan ralat sehingga 0.5%.

Menggunakan geopy.distance

Untuk menyelesaikan isu ini, adalah disyorkan untuk beralih kepada menggunakan fungsi geopy.distance.geodesic() yang lebih tepat untuk mengira jarak. Fungsi ini menggunakan model ellipsoidal, seperti WGS-84, dan memberikan hasil yang lebih tepat:

<code class="python">import geopy.distance

coords_1 = (52.2296756, 21.0122287)
coords_2 = (52.406374, 16.9251681)

distance = geopy.distance.geodesic(coords_1, coords_2).km
print(distance)</code>

Dengan kod yang disemak, jarak antara dua titik dikira dengan tepat sebagai 279.352 kilometer.

Atas ialah kandungan terperinci Mengapa Pengiraan Jarak Latitud/Longitud Saya Tidak Betul?. 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