- 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 coordonnees 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 coordonnees 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 coordonnees 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 Montreal et Paris en Km: "+str(CoordToDeltaKm(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E'))
- print "Distance entre Montreal et Paris en Miles: "+str(CoordToDeltaStatuteMiles(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E'))
- print "Distance entre Montreal et Paris en Miles Nautique: "+str(CoordToDeltaNauticalMiles(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E'))
|