Localisation

Formule de Haversine

LaTerre est (approximativement) sphérique.

La distance d‘entre deux points sur une sphère de rayon R estdonnée par la formule de Haversine :


Correspondance des symboles :

  • d : distance entre les deux points.

  • R : rayon terrestre moyen → 12742km/2=6371km

  • Φ1,Φ2 : latitudes des deux points (en radians).

  • λ1,λ2 : longitudes des deux points (en radians).

La formule de Haversine est précise pour de courtes et moyennesdistances. Elle est simple à implémenter.

Python


from haversine import haversine,Unit

lyon = [45.7597, 4.8422] # (latitude, longitude)
paris = [48.8567, 2.3508]

distance_km = haversine(lyon, paris)
print(f"Distance: {distance_km} km")

# Solution sans utiliser de bibliothèque : haversine

from math import radians, sin, cos, sqrt, atan2

def haversine_math(lat1, lon1, lat2, lon2):
    # Rayon moyen de la Terre en mètres
    R = 6371000

    # Conversion des coordonnées en radians
    lat1, lon1, lat2, lon2 = map(radians, [lat1, lon1, lat2, lon2])

    # Différences de coordonnées
    dlat = lat2 - lat1
    dlon = lon2 - lon1

    # Formule de Haversine
    a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
    c = 2 * atan2(sqrt(a), sqrt(1 - a))

    distance = R * c
    return distance
distance_km = haversine_math(lyon[0],lyon[1], paris[0], paris[1])
print(f"Distance Math: {distance_km/1000} km")

Personnaliser

Google Analytics

Google Analytics est un service utilisé sur notre site Web qui permet de suivre, de signaler le trafic et de mesurer la manière dont les utilisateurs interagissent avec le contenu de notre site Web afin de l’améliorer et de fournir de meilleurs services.

Facebook

Notre site Web vous permet d’aimer ou de partager son contenu sur le réseau social Facebook. En l'utilisant, vous acceptez les règles de confidentialité de Facebook: https://www.facebook.com/policy/cookies/

Twitter

Les tweets intégrés et les services de partage de Twitter sont utilisés sur notre site Web. En activant et utilisant ceux-ci, vous acceptez la politique de confidentialité de Twitter: https://help.twitter.com/fr/rules-and-policies/twitter-cookies