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

  1. REBOL [ 
  2.  Title: "CoordToDelta" 
  3.  Version: 1.0.0 
  4.  Author: "Sylvain Maltais" 
  5.  Purpose: {Calcul la distance entre deux coordonnées de Longitude et Latitude.} 
  6. ] 
  7.  
  8. Cos: function [a] [Result] [ 
  9.  Result: cosine (57.295779513 * a) 
  10. ] 
  11.  
  12. Sin: function [a] [Result] [ 
  13.  Result: sine (57.295779513 * a) 
  14. ] 
  15.  
  16. ArcCos: function [a] [Result] [ 
  17.  Result: 0.017453292520 * (arccosine a) 
  18. ] 
  19.  
  20. CoordToDeltaKm: function [ 
  21.  Q1Latitude Q1LatiDeg Q1LatiDirection  
  22.  Q1Longitude Q1LongDeg Q1LongDirection  
  23.  Q2Latitude Q2LatiDeg Q2LatiDirection  
  24.  Q2Longitude Q2LongDeg Q2LongDirection 
  25. ] [RawDelta] [ 
  26.     pi: 3.141592653589793  
  27.     a1: (Q1Latitude + (Q1LatiDeg / 60.0)) * pi / 180.0 
  28.     if Q1LatiDirection = "N" [a1: - a1] 
  29.     b1: (Q1Longitude + (Q1LongDeg / 60.0)) * pi / 180.0 
  30.     if Q1LongDirection = "O" [b1: - b1] 
  31.     a2: (Q2Latitude + (Q2LatiDeg / 60.0)) * pi / 180.0 
  32.     if Q2LatiDirection = "N" [a2: - a2] 
  33.     b2: (Q2Longitude + (Q2LongDeg / 60.0)) * pi / 180.0 
  34.     if Q2LongDirection = "O" [b2: - b2] 
  35.     RawDelta: ArcCos (((cos a1)*(cos b1)*(cos a2)*(cos b2)) + ((cos a1)*(sin b1)*(cos a2)*(sin b2)) + ((sin a1)*(sin a2))) 
  36.     RawDelta: RawDelta * 6378.0 
  37. ] 
  38.  
  39. CoordToDeltaStatuteMiles: function [ 
  40.  Q1Latitude Q1LatiDeg Q1LatiDirection  
  41.  Q1Longitude Q1LongDeg Q1LongDirection  
  42.  Q2Latitude Q2LatiDeg Q2LatiDirection  
  43.  Q2Longitude Q2LongDeg Q2LongDirection 
  44. ] [RawDelta] [ 
  45.     pi: 3.141592653589793  
  46.     a1: (Q1Latitude + (Q1LatiDeg / 60.0)) * pi / 180.0 
  47.     if Q1LatiDirection = "N" [a1: - a1] 
  48.     b1: (Q1Longitude + (Q1LongDeg / 60.0)) * pi / 180.0 
  49.     if Q1LongDirection = "O" [b1: - b1] 
  50.     a2: (Q2Latitude + (Q2LatiDeg / 60.0)) * pi / 180.0 
  51.     if Q2LatiDirection = "N" [a2: - a2] 
  52.     b2: (Q2Longitude + (Q2LongDeg / 60.0)) * pi / 180.0 
  53.     if Q2LongDirection = "O" [b2: - b2] 
  54.     RawDelta: ArcCos (((cos a1)*(cos b1)*(cos a2)*(cos b2)) + ((cos a1)*(sin b1)*(cos a2)*(sin b2)) + ((sin a1)*(sin a2))) 
  55.     RawDelta: RawDelta * 3963.1 
  56. ] 
  57.  
  58. CoordToDeltaNauticalMiles: function [ 
  59.  Q1Latitude Q1LatiDeg Q1LatiDirection  
  60.  Q1Longitude Q1LongDeg Q1LongDirection  
  61.  Q2Latitude Q2LatiDeg Q2LatiDirection  
  62.  Q2Longitude Q2LongDeg Q2LongDirection 
  63. ] [RawDelta] [ 
  64.     pi: 3.141592653589793  
  65.     a1: (Q1Latitude + (Q1LatiDeg / 60.0)) * pi / 180.0 
  66.     if Q1LatiDirection = "N" [a1: - a1] 
  67.     b1: (Q1Longitude + (Q1LongDeg / 60.0)) * pi / 180.0 
  68.     if Q1LongDirection = "O" [b1: - b1] 
  69.     a2: (Q2Latitude + (Q2LatiDeg / 60.0)) * pi / 180.0 
  70.     if Q2LatiDirection = "N" [a2: - a2] 
  71.     b2: (Q2Longitude + (Q2LongDeg / 60.0)) * pi / 180.0 
  72.     if Q2LongDirection = "O" [b2: - b2] 
  73.     RawDelta: ArcCos (((cos a1)*(cos b1)*(cos a2)*(cos b2)) + ((cos a1)*(sin b1)*(cos a2)*(sin b2)) + ((sin a1)*(sin a2))) 
  74.     RawDelta: RawDelta * 3443.9 
  75. ] 
  76.  
  77. print "Distance entre Montréal et Paris en Km: " 
  78. print CoordToDeltaKm 45 31 "N" 73 34 "O"    48 50 "N" 2 20 "E" 
  79. print "Distance entre Montréal et Paris en Miles: " 
  80. print CoordToDeltaStatuteMiles 45 31 "N" 73 34 "O"    48 50 "N" 2 20 "E" 
  81. print "Distance entre Montréal et Paris en Miles Nautique: " 
  82. print 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.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 : Dimanche, le 4 janvier 2015