Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh meningkatkan ketepatan pengiraan jarak geografi melebihi formula haversine?

Bagaimanakah saya boleh meningkatkan ketepatan pengiraan jarak geografi melebihi formula haversine?

Susan Sarandon
Susan Sarandonasal
2024-11-05 11:00:021019semak imbas

How can I improve the accuracy of geographical distance calculations beyond the haversine formula?

Pengiraan Jarak Geometrik untuk Latitud dan Longitud

Dalam pengiraan jarak berdasarkan koordinat geografi, menggunakan formula haversine telah diterima pakai secara meluas. Walau bagaimanapun, ia menganggap Bumi sfera, yang boleh menimbulkan ralat. Untuk pengiraan yang lebih tepat, adalah perlu untuk mempertimbangkan sifat ellipsoidal planet ini.

Dalam kod yang disediakan, walaupun formula haversine dilaksanakan dengan betul, isunya terletak pada ketidaktepatan andaian. Formula haversine diketahui mempunyai ralat sehingga 0.5%.

Sebagai penyelesaian, perpustakaan Python GeoPy menawarkan pengiraan jarak yang mantap dengan modul geopty.distance. Modul ini menggunakan formula jarak Vincenty, yang menggunakan model ellipsoidal seperti WGS-84 untuk ketepatan yang lebih tinggi.

Untuk melaksanakannya dalam kod anda, gunakan langkah berikut:

  1. Import geopi .modul jarak.
  2. Tentukan tupel koordinat untuk titik 1 dan titik 2.
  3. Gunakan fungsi geopy.distance.geodesic() untuk mengira jarak antara titik.

Contohnya:

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

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

distance_km = geopy.distance.geodesic(coords_1, coords_2).km

print('Distance (in kilometers):', distance_km)</code>

Pendekatan ini akan memberikan pengiraan jarak yang lebih tepat berbanding dengan formula haversine.

Atas ialah kandungan terperinci Bagaimanakah saya boleh meningkatkan ketepatan pengiraan jarak geografi melebihi formula haversine?. 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