Une des fonctions les plus communes de la géographie et des systèmes modernes, c'est le calcul de la distance géographique entre deux coordonnées de Longitude et de Latitude. Il n'y a aucune nécessité de grande connaissance en trigonométrie pour arriver à se genre de calcul dans le format qu'on le souhaite, Km, Miles ou Miles Nautiques. Ainsi, si vous savez les coordonnées suivantes:
Ville | Latitude | Longitude |
---|---|---|
Montréal | 45 31N | 73 34O |
Paris | 48 50N | 2 20E |
A l'aide du code source PyPy suivant, vous trouverez la réponse que vous souhaitez:
from math import cos, sin, acos, pi
def CoordToDeltaKm (
Q1Latitude,Q1LatiDeg,Q1LatiDirection,Q1Longitude,Q1LongDeg,Q1LongDirection,
Q2Latitude,Q2LatiDeg,Q2LatiDirection,Q2Longitude,Q2LongDeg,Q2LongDirection
):
"Calcul la distance entre deux coordonnées Latitude et Longitude en Km"
a1=(Q1Latitude+(Q1LatiDeg/60.0))*pi/180
if Q1LatiDirection=="N":
a1=-a1
b1=(Q1Longitude+(Q1LongDeg/60.0))*pi/180
if Q1LongDirection=="O":
b1=-b1
a2=(Q2Latitude+(Q2LatiDeg/60.0))*pi/180
if Q2LatiDirection=="N":
a2=-a2
b2=(Q2Longitude+(Q2LongDeg/60.0))*pi/180
if Q2LongDirection=="O":
b2=-b2
RawDelta = acos(cos(a1)*cos(b1)*cos(a2)*cos(b2) + cos(a1)*sin(b1)*cos(a2)*sin(b2) + sin(a1)*sin(a2))
return RawDelta * 6378.0
def CoordToDeltaStatuteMiles(
Q1Latitude,Q1LatiDeg,Q1LatiDirection,Q1Longitude,Q1LongDeg,Q1LongDirection,
Q2Latitude,Q2LatiDeg,Q2LatiDirection,Q2Longitude,Q2LongDeg,Q2LongDirection
):
"Calcul la distance entre deux coordonnées Latitude et Longitude en Miles"
a1=(Q1Latitude+(Q1LatiDeg/60.0))*pi/180
if Q1LatiDirection=='N':
a1=-a1
b1=(Q1Longitude+(Q1LongDeg/60.0))*pi/180
if Q1LongDirection=='O':
b1=-b1
a2=(Q2Latitude+(Q2LatiDeg/60.0))*pi/180
if Q2LatiDirection=='N':
a2=-a2
b2=(Q2Longitude+(Q2LongDeg/60.0))*pi/180
if Q2LongDirection=='O':
b2=-b2
RawDelta = acos(cos(a1)*cos(b1)*cos(a2)*cos(b2) + cos(a1)*sin(b1)*cos(a2)*sin(b2) + sin(a1)*sin(a2))
return RawDelta * 3963.1
def CoordToDeltaNauticalMiles(
Q1Latitude,Q1LatiDeg,Q1LatiDirection,Q1Longitude,Q1LongDeg,Q1LongDirection,
Q2Latitude,Q2LatiDeg,Q2LatiDirection,Q2Longitude,Q2LongDeg,Q2LongDirection
):
"Calcul la distance entre deux coordonnées Latitude et Longitude en Miles nautique"
a1=(Q1Latitude+(Q1LatiDeg/60.0))*pi/180
if Q1LatiDirection=='N':
a1=-a1
b1=(Q1Longitude+(Q1LongDeg/60.0))*pi/180
if Q1LongDirection=='O':
b1=-b1
a2=(Q2Latitude+(Q2LatiDeg/60.0))*pi/180
if Q2LatiDirection=='N':
a2=-a2
b2=(Q2Longitude+(Q2LongDeg/60.0))*pi/180
if Q2LongDirection=='O':
b2=-b2
RawDelta = acos(cos(a1)*cos(b1)*cos(a2)*cos(b2) + cos(a1)*sin(b1)*cos(a2)*sin(b2) + sin(a1)*sin(a2))
return RawDelta * 3443.9
print "Distance entre Montréal et Paris en Km: "+str(CoordToDeltaKm(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E'))
print "Distance entre Montréal et Paris en Miles: "+str(CoordToDeltaStatuteMiles(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E'))
print "Distance entre Montréal et Paris en Miles Nautique: "+str(CoordToDeltaNauticalMiles(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E'))
on obtiendra le résultat suivant:
Distance entre Montréal et Paris en Km: 5510.16761889Distance entre Montréal et Paris en Miles: 3423.85470217
Distance entre Montréal et Paris en Miles Nautique: 2975.30044884
Dernière mise à jour : Dimanche, le 16 octobre 2016