Maison  >  Article  >  développement back-end  >  Comment puis-je améliorer la précision des calculs de distance géographique au-delà de la formule haversine ?

Comment puis-je améliorer la précision des calculs de distance géographique au-delà de la formule haversine ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-05 11:00:02942parcourir

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

Calculs de distances géométriques pour les latitudes et les longitudes

Dans le calcul des distances basées sur des coordonnées géographiques, l'utilisation de la formule haversine a été largement adoptée. Cependant, cela suppose une Terre sphérique, ce qui peut introduire des erreurs. Pour des calculs plus précis, il est nécessaire de considérer la nature ellipsoïdale de la planète.

Dans le code fourni, bien que la formule haversine soit correctement implémentée, le problème réside dans l'inexactitude de l'hypothèse. La formule haversine est connue pour comporter des erreurs allant jusqu'à 0,5%.

En guise de solution, la bibliothèque Python GeoPy propose un calcul de distance robuste avec le module geopty.distance. Ce module utilise la formule de distance Vincenty, qui utilise des modèles ellipsoïdaux comme WGS-84 pour une plus grande précision.

Pour l'implémenter dans votre code, suivez les étapes suivantes :

  1. Importez la géopie Module .distance.
  2. Définissez les tuples de coordonnées pour le point 1 et le point 2.
  3. Utilisez la fonction geopy.distance.geodesic() pour calculer la distance entre les points.

Par exemple :

<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>

Cette approche fournira un calcul de distance plus précis par rapport à la formule haversine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn