Dans le monde de la navigation, déterminer la distance et le relèvement entre deux points GPS est crucial. La formule Haversine fournit un moyen précis de calculer ces valeurs en utilisant la géométrie sphérique.
Pour calculer la distance entre deux points GPS, nous devons convertir leurs latitudes et longitudes. des degrés décimaux aux radians. On applique alors la formule :
dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon/2) ** 2 c = 2 * asin(sqrt(a)) distance = c * r
où dlon et dlat représentent les différences de longitude et de latitude, a est une valeur intermédiaire, et r est le rayon de la Terre (6371 kilomètres pour les kilomètres ou 3956 milles pour miles).
En plus de déterminer la distance, nous pouvons également trouver le relèvement (azimut) du premier point au deuxième point en utilisant la formule de Haversine :
y = sin(dlon) * cos(lat2) x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon) bearing = atan2(y, x)
où dlon est la différence de longitude, lat1 et lat2 sont les latitudes des deux points, x et y sont des valeurs intermédiaires , et le relèvement représente l'azimut mesuré en radians à partir du nord dans le sens des aiguilles d'une montre.
Voici un Python mise en œuvre de la formule Haversine pour le calcul de la distance et du relèvement :
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) 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 return c * r
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!