Section courante

A propos

Section administrative du site

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 ASP suivant, vous trouvez la réponse que vous souhaitez :

  1. <%
  2. Const PI=3.141592653589793 
  3.  
  4. Function ACos(a) 
  5.    If Abs(a)=1 Then  
  6.       ACos = (1-a)*PI/2 
  7.    Else  
  8.       ACos = Atn(-a/Sqr(1-a*a))+2*Atn(1) 
  9.    End If 
  10. End Function
  11.  
  12. Function CoordToDeltaKm(Q1Latitude,Q1LatiDeg,Q1LatiDirection,Q1Longitude,Q1LongDeg,Q1LongDirection,Q2Latitude,Q2LatiDeg,Q2LatiDirection,Q2Longitude,Q2LongDeg,Q2LongDirection)
  13.  a1=(Q1Latitude+(Q1LatiDeg/60))*PI/180
  14.  If Q1LatiDirection="N"Then 
  15.       a1=-a1
  16.  End If
  17.  b1=(Q1Longitude+(Q1LongDeg/60))*PI/180
  18.  If Q1LongDirection="O"Then 
  19.       b1=-b1
  20.  End If
  21.  a2=(Q2Latitude+(Q2LatiDeg/60))*PI/180
  22.  If Q2LatiDirection="N"Then 
  23.       a2=-a2
  24.  End If
  25.  b2=(Q2Longitude+(Q2LongDeg/60))*PI/180
  26.  If Q2LongDirection="O"Then 
  27.       b2=-b2
  28.  End If
  29.  RawDelta=ACos(Cos(a1)*Cos(b1)*Cos(a2)*Cos(b2) + Cos(a1)*Sin(b1)*Cos(a2)*Sin(b2) + Sin(a1)*Sin(a2))
  30.  CoordToDeltaKm=RawDelta*6378.0
  31. End Function
  32.  
  33. Function CoordToDeltaStatuteMiles(Q1Latitude,Q1LatiDeg,Q1LatiDirection,Q1Longitude,Q1LongDeg,Q1LongDirection,Q2Latitude,Q2LatiDeg,Q2LatiDirection,Q2Longitude,Q2LongDeg,Q2LongDirection)
  34.  a1=(Q1Latitude+(Q1LatiDeg/60))*PI/180
  35.  If Q1LatiDirection="N"Then 
  36.       a1=-a1
  37.  End If
  38.  b1=(Q1Longitude+(Q1LongDeg/60))*PI/180
  39.  If Q1LongDirection="O"Then 
  40.       b1=-b1
  41.  End If
  42.  a2=(Q2Latitude+(Q2LatiDeg/60))*PI/180
  43.  If Q2LatiDirection="N"Then 
  44.       a2=-a2
  45.  End If
  46.  b2=(Q2Longitude+(Q2LongDeg/60))*PI/180
  47.  If Q2LongDirection="O"Then 
  48.       b2=-b2
  49.  End If
  50.  RawDelta=ACos(Cos(a1)*Cos(b1)*Cos(a2)*Cos(b2) + Cos(a1)*Sin(b1)*Cos(a2)*Sin(b2) + Sin(a1)*Sin(a2))
  51.  CoordToDeltaStatuteMiles=RawDelta*3963.1
  52. End Function
  53.  
  54.  
  55. Function CoordToDeltaNauticalMiles(Q1Latitude,Q1LatiDeg,Q1LatiDirection,Q1Longitude,Q1LongDeg,Q1LongDirection,Q2Latitude,Q2LatiDeg,Q2LatiDirection,Q2Longitude,Q2LongDeg,Q2LongDirection)
  56.  a1=(Q1Latitude+(Q1LatiDeg/60))*PI/180
  57.  If Q1LatiDirection="N"Then 
  58.       a1=-a1
  59.  End If
  60.  b1=(Q1Longitude+(Q1LongDeg/60))*PI/180
  61.  If Q1LongDirection="O"Then 
  62.       b1=-b1
  63.  End If
  64.  a2=(Q2Latitude+(Q2LatiDeg/60))*PI/180
  65.  If Q2LatiDirection="N"Then 
  66.       a2=-a2
  67.  End If
  68.  b2=(Q2Longitude+(Q2LongDeg/60))*PI/180
  69.  If Q2LongDirection="O"Then 
  70.       b2=-b2
  71.  End If
  72.  RawDelta=ACos(Cos(a1)*Cos(b1)*Cos(a2)*Cos(b2) + Cos(a1)*Sin(b1)*Cos(a2)*Sin(b2) + Sin(a1)*Sin(a2))
  73.  CoordToDeltaNauticalMiles=RawDelta * 3443.9
  74. End Function
  75.  
  76.  
  77. Response.Write "Distance entre Montréal et Paris en Km: "+CStr(CoordToDeltaKm(45, 31,"N",73, 34,"O",48, 50,"N", 2,  20,"E"))+"<BR>"
  78. Response.Write "Distance entre Montréal et Paris en Miles: "+CStr(CoordToDeltaStatuteMiles(45, 31,"N", 73, 34,"O",    48, 50,"N", 2,  20,"E"))+"<BR>"
  79. Response.Write "Distance entre Montréal et Paris en Miles Nautique: "+CStr(CoordToDeltaNauticalMiles(45, 31,"N", 73, 34,"O",    48, 50,"N", 2,  20,"E"))+"<BR>"
  80. %>

on obtiendra le résultat suivant :

Distance entre Montréal et Paris en Km: 5510.16761889
Distance entre Montréal et Paris en Miles: 3423.85470217
Distance entre Montréal et Paris en Miles Nautique: 2975.30044884


Dernière mise à jour : Mercredi, le 20 août 2014