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

  1. PRINT "Distance entre Montréal et Paris en Km: " + STR$(CoordToDeltaKm(45, 31, "N", 73, 34, "O", 48, 50, "N", 2, 20, "E"))
  2. PRINT "Distance entre Montréal et Paris en Miles: " + STR$(CoordToDeltaStatuteMiles(45, 31, "N", 73, 34, "O", 48, 50, "N", 2, 20, "E"))
  3. PRINT "Distance entre Montréal et Paris en Miles Nautique: " + STR$(CoordToDeltaNauticalMiles(45, 31, "N", 73, 34, "O", 48, 50, "N", 2, 20, "E"))
  4.  
  5. FUNCTION CoordToDeltaKm(Q1Latitude, Q1LatiDeg, Q1LatiDirection$, Q1Longitude, Q1LongDeg, Q1LongDirection$, Q2Latitude, Q2LatiDeg, Q2LatiDirection$, Q2Longitude, Q2LongDeg, Q2LongDirection$)
  6.  PI = 3.141592653589793
  7.  a1 = (Q1Latitude + (Q1LatiDeg / 60)) * PI / 180
  8.  IF Q1LatiDirection$ = "N" THEN
  9.      a1 = 0 - a1
  10.  END IF
  11.  b1 = (Q1Longitude + (Q1LongDeg / 60)) * PI / 180
  12.  IF Q1LongDirection$ = "O" THEN
  13.      b1 = 0 - b1
  14.  END IF
  15.  a2 = (Q2Latitude + (Q2LatiDeg / 60)) * PI / 180
  16.  IF Q2LatiDirection$ = "N" THEN
  17.      a2 = 0 - a2
  18.  END IF
  19.  b2 = (Q2Longitude + (Q2LongDeg / 60)) * PI / 180
  20.  IF Q2LongDirection$ = "O" THEN
  21.      b2 = 0 - b2
  22.  END IF
  23.  RawDelta = ACS(COS(a1) * COS(b1) * COS(a2) * COS(b2) + COS(a1) * SIN(b1) * COS(a2) * SIN(b2) + SIN(a1) * SIN(a2))
  24.  CoordToDeltaKm = RawDelta * 6378
  25. END FUNCTION
  26.  
  27. FUNCTION CoordToDeltaNauticalMiles (Q1Latitude, Q1LatiDeg, Q1LatiDirection$, Q1Longitude, Q1LongDeg, Q1LongDirection$, Q2Latitude, Q2LatiDeg, Q2LatiDirection$, Q2Longitude, Q2LongDeg, Q2LongDirection$)
  28.  PI = 3.141592653589793
  29.  a1 = (Q1Latitude + (Q1LatiDeg / 60)) * PI / 180
  30.  IF Q1LatiDirection$ = "N" THEN
  31.      a1 = 0 - a1
  32.  END IF
  33.  b1 = (Q1Longitude + (Q1LongDeg / 60)) * PI / 180
  34.  IF Q1LongDirection$ = "O" THEN
  35.      b1 = 0 - b1
  36.  END IF
  37.  a2 = (Q2Latitude + (Q2LatiDeg / 60)) * PI / 180
  38.  IF Q2LatiDirection$ = "N" THEN
  39.      a2 = 0 - a2
  40.  END IF
  41.  b2 = (Q2Longitude + (Q2LongDeg / 60)) * PI / 180
  42.  IF Q2LongDirection$ = "O" THEN
  43.      b2 = 0 - b2
  44.  END IF
  45.  RawDelta = ACS(COS(a1) * COS(b1) * COS(a2) * COS(b2) + COS(a1) * SIN(b1) * COS(a2) * SIN(b2) + SIN(a1) * SIN(a2))
  46.  CoordToDeltaNauticalMiles = RawDelta * 3443.9
  47. END FUNCTION
  48.  
  49. FUNCTION CoordToDeltaStatuteMiles (Q1Latitude, Q1LatiDeg, Q1LatiDirection$, Q1Longitude, Q1LongDeg, Q1LongDirection$, Q2Latitude, Q2LatiDeg, Q2LatiDirection$, Q2Longitude, Q2LongDeg, Q2LongDirection$)
  50.  PI = 3.141592653589793
  51.  a1 = (Q1Latitude + (Q1LatiDeg / 60)) * PI / 180
  52.  IF Q1LatiDirection$ = "N" THEN
  53.      a1 = 0 - a1
  54.  END IF
  55.  b1 = (Q1Longitude + (Q1LongDeg / 60)) * PI / 180
  56.  IF Q1LongDirection$ = "O" THEN
  57.      b1 = 0 - b1
  58.  END IF
  59.  a2 = (Q2Latitude + (Q2LatiDeg / 60)) * PI / 180
  60.  IF Q2LatiDirection$ = "N" THEN
  61.      a2 = 0 - a2
  62.  END IF
  63.  b2 = (Q2Longitude + (Q2LongDeg / 60)) * PI / 180
  64.  IF Q2LongDirection$ = "O" THEN
  65.      b2 = 0 - b2
  66.  END IF
  67.  RawDelta = ACS(COS(a1) * COS(b1) * COS(a2) * COS(b2) + COS(a1) * SIN(b1) * COS(a2) * SIN(b2) + SIN(a1) * SIN(a2))
  68.  CoordToDeltaStatuteMiles = RawDelta * 3963.1
  69. END FUNCTION

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 : Samedi, le 23 août 2014