Maison > développement back-end > Tutoriel Python > Comment calculer la distance et le relèvement entre deux points GPS à l'aide de la formule Haversine de Python ?

Comment calculer la distance et le relèvement entre deux points GPS à l'aide de la formule Haversine de Python ?

DDD
Libérer: 2024-11-30 09:59:10
original
602 Les gens l'ont consulté

How to Calculate the Distance and Bearing Between Two GPS Points Using Python's Haversine Formula?

Comment calculer le relèvement et la distance entre deux points GPS à l'aide de la formule Haversine en Python

La formule Haversine est une équation mathématique utilisée pour calculer le distance orthodromique entre deux points d'une sphère. Dans le contexte du GPS, cette formule peut être utilisée pour déterminer à la fois la distance et le relèvement entre deux coordonnées GPS.

Étape 1 : Définir la fonction

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

def haversine(lon1, lat1, lon2, lat2):
    """
    Calculate the great circle distance in kilometers between two points 
    on the earth (specified in decimal degrees)
    """
    # 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. Use 3956 for miles. Determines return value units.
    return c * r
Copier après la connexion

Étape 2 : Calcul

start_lon, start_lat = -1.7297222222222221, 53.32055555555556
bearing, distance = 96.02166666666666, 2
end_lon, end_lat = -1.6997222222222223, 53.31861111111111

distance_calculated = haversine(start_lon, start_lat, end_lon, end_lat)

print("Distance:", distance_calculated)
Copier après la connexion

Sortie :

Distance: 2.0000054199729084
Copier après la connexion

Dans cet exemple, la distance calculée correspond à la valeur attendue de 2 kilomètres.

Remarque :

  • La formule Haversine suppose que la Terre est une sphère parfaite, ce qui n'est pas tout à fait vrai. Cependant, il fournit une approximation raisonnablement précise pour la plupart des objectifs pratiques.
  • Pour des calculs plus avancés, un modèle terrestre plus précis, tel que l'ellipsoïde WGS84, peut être utilisé.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal