Accueil de Gladir.com Notes légales de Gladir.com Flux RSS des nouvelles du site Gladir.com - Langage de programmation - Turbo Basic - Calcul la distance entre deux coordonnées de Longitude et Latitude Section du logiciel DOS «MonsterBook» Inventaire de la bibliothèque de Gladir.com Entrée administrateur

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éss suivantes :

Ville Latitude Longitude
Montréal 45 31N 73 34O
Paris 48 50N 2 20E

A l'aide du code source Turbo Basic suivant, vous trouvez la réponse que vous souhaitez :

  1. PRINT "Distance entre Montréal et Paris en Km: " + STR$(FNCoordToDeltaKm(45, 31, "N", 73, 34, "O", 48, 50, "N", 2, 20, "E"))
  2. PRINT "Distance entre Montréal et Paris en Miles: " + STR$(FNCoordToDeltaStatuteMiles(45, 31, "N", 73, 34, "O", 48, 50, "N", 2, 20, "E"))
  3. PRINT "Distance entre Montréal et Paris en Miles Nautique: " + STR$(FNCoordToDeltaNauticalMiles(45, 31, "N", 73, 34, "O", 48, 50, "N", 2, 20, "E"))
  4.  
  5. DEF FNACos(a)
  6.    PI=3.141592653589793
  7.    If Abs(a)=1 Then
  8.       FNACos = (1-a)*PI/2
  9.    Else
  10.       FNACos = Atn(-a/Sqr(1-a*a))+2*Atn(1)
  11.    End If
  12. END DEF
  13.  
  14. DEF FNCoordToDeltaKm (Q1Latitude, Q1LatiDeg, Q1LatiDirection$, Q1Longitude, Q1LongDeg, Q1LongDirection$, Q2Latitude, Q2LatiDeg, Q2LatiDirection$, Q2Longitude, Q2LongDeg, Q2LongDirection$)
  15.  PI = 3.141592653589793
  16.  a1 = (Q1Latitude + (Q1LatiDeg / 60)) * PI / 180
  17.  IF Q1LatiDirection$ = "N" THEN     a1 = -a1
  18.  b1 = (Q1Longitude + (Q1LongDeg / 60)) * PI / 180
  19.  IF Q1LongDirection$ = "O" THEN     b1 = -b1
  20.  a2 = (Q2Latitude + (Q2LatiDeg / 60)) * PI / 180
  21.  IF Q2LatiDirection$ = "N" THEN     a2 = -a2
  22.  b2 = (Q2Longitude + (Q2LongDeg / 60)) * PI / 180
  23.  IF Q2LongDirection$ = "O" THEN     b2 = -b2
  24.  RawDelta = FNACos(COS(a1) * COS(b1) * COS(a2) * COS(b2) + COS(a1) * SIN(b1) * COS(a2) * SIN(b2) + SIN(a1) * SIN(a2))
  25.  FNCoordToDeltaKm = RawDelta * 6378.0
  26. END DEF
  27.  
  28. DEF FNCoordToDeltaNauticalMiles (Q1Latitude, Q1LatiDeg, Q1LatiDirection$, Q1Longitude, Q1LongDeg, Q1LongDirection$, Q2Latitude, Q2LatiDeg, Q2LatiDirection$, Q2Longitude, Q2LongDeg, Q2LongDirection$)
  29.  PI = 3.141592653589793
  30.  a1 = (Q1Latitude + (Q1LatiDeg / 60)) * PI / 180
  31.  IF Q1LatiDirection$ = "N" THEN     a1 = -a1
  32.  b1 = (Q1Longitude + (Q1LongDeg / 60)) * PI / 180
  33.  IF Q1LongDirection$ = "O" THEN     b1 = -b1
  34.  a2 = (Q2Latitude + (Q2LatiDeg / 60)) * PI / 180
  35.  IF Q2LatiDirection$ = "N" THEN     a2 = -a2
  36.  b2 = (Q2Longitude + (Q2LongDeg / 60)) * PI / 180
  37.  IF Q2LongDirection$ = "O" THEN     b2 = -b2
  38.  RawDelta = FNACos(COS(a1) * COS(b1) * COS(a2) * COS(b2) + COS(a1) * SIN(b1) * COS(a2) * SIN(b2) + SIN(a1) * SIN(a2))
  39.  FNCoordToDeltaNauticalMiles = RawDelta * 3443.9
  40. END DEF
  41.  
  42. DEF FNCoordToDeltaStatuteMiles (Q1Latitude, Q1LatiDeg, Q1LatiDirection$, Q1Longitude, Q1LongDeg, Q1LongDirection$, Q2Latitude, Q2LatiDeg, Q2LatiDirection$, Q2Longitude, Q2LongDeg, Q2LongDirection$)
  43.  PI = 3.141592653589793
  44.  a1 = (Q1Latitude + (Q1LatiDeg / 60)) * PI / 180
  45.  IF Q1LatiDirection$ = "N" THEN     a1 = -a1
  46.  b1 = (Q1Longitude + (Q1LongDeg / 60)) * PI / 180
  47.  IF Q1LongDirection$ = "O" THEN     b1 = -b1
  48.  a2 = (Q2Latitude + (Q2LatiDeg / 60)) * PI / 180
  49.  IF Q2LatiDirection$ = "N" THEN     a2 = -a2
  50.  b2 = (Q2Longitude + (Q2LongDeg / 60)) * PI / 180
  51.  IF Q2LongDirection$ = "O" THEN     b2 = -b2
  52.  RawDelta = FNACos(COS(a1) * COS(b1) * COS(a2) * COS(b2) + COS(a1) * SIN(b1) * COS(a2) * SIN(b2) + SIN(a1) * SIN(a2))
  53.  FNCoordToDeltaStatuteMiles = RawDelta * 3963.1
  54. END DEF

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 4 février 2012