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 Phalanger (PHP .NET) suivant, vous trouverez la réponse que vous souhaitez:

<?
function CoordToDeltaKm(
     $Q1Latitude,$Q1LatiDeg,$Q1LatiDirection,$Q1Longitude,$Q1LongDeg,$Q1LongDirection,
    $Q2Latitude,$Q2LatiDeg,$Q2LatiDirection,$Q2Longitude,$Q2LongDeg,$Q2LongDirection
) {
     $a1=($Q1Latitude+($Q1LatiDeg/60))*pi()/180;
      if($Q1LatiDirection=='N') $a1=-$a1;
     $b1=($Q1Longitude+($Q1LongDeg/60))*pi()/180;
      if($Q1LongDirection=='O') $b1=-$b1;
     $a2=($Q2Latitude+($Q2LatiDeg/60))*pi()/180;
      if($Q2LatiDirection=='N') $a2=-$a2;
     $b2=($Q2Longitude+($Q2LongDeg/60))*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; 
}

function CoordToDeltaStatuteMiles(
     $Q1Latitude,$Q1LatiDeg,$Q1LatiDirection,$Q1Longitude,$Q1LongDeg,$Q1LongDirection,
    $Q2Latitude,$Q2LatiDeg,$Q2LatiDirection,$Q2Longitude,$Q2LongDeg,$Q2LongDirection
) {
     $a1=($Q1Latitude+($Q1LatiDeg/60))*pi()/180;
      if($Q1LatiDirection=='N') $a1=-$a1;
     $b1=($Q1Longitude+($Q1LongDeg/60))*pi()/180;
      if($Q1LongDirection=='O') $b1=-$b1;
     $a2=($Q2Latitude+($Q2LatiDeg/60))*pi()/180;
      if($Q2LatiDirection=='N') $a2=-$a2;
     $b2=($Q2Longitude+($Q2LongDeg/60))*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; 
}

function CoordToDeltaNauticalMiles(
     $Q1Latitude,$Q1LatiDeg,$Q1LatiDirection,$Q1Longitude,$Q1LongDeg,$Q1LongDirection,
    $Q2Latitude,$Q2LatiDeg,$Q2LatiDirection,$Q2Longitude,$Q2LongDeg,$Q2LongDirection
) {
     $a1=($Q1Latitude+($Q1LatiDeg/60))*pi()/180;
      if($Q1LatiDirection=='N') $a1=-$a1;
     $b1=($Q1Longitude+($Q1LongDeg/60))*pi()/180;
      if($Q1LongDirection=='O') $b1=-$b1;
     $a2=($Q2Latitude+($Q2LatiDeg/60))*pi()/180;
      if($Q2LatiDirection=='N') $a2=-$a2;
     $b2=($Q2Longitude+($Q2LongDeg/60))*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; 
}

echo "Distance entre Montréal et Paris en Km: ".CoordToDeltaKm(45, 31,'N', 73, 34,'O',    48, 50,'N', 2,  20,'E')."\n";
echo "Distance entre Montréal et Paris en Miles: ".CoordToDeltaStatuteMiles(45, 31,'N', 73, 34,'O',    48, 50,'N', 2,  20,'E')."\n";
echo "Distance entre Montréal et Paris en Miles Nautique: ".CoordToDeltaNauticalMiles(45, 31,'N', 73, 34,'O',    48, 50,'N', 2,  20,'E')."\n";
?>

on obtiendra le résultat suivant :

Distance entre Montréal et Paris en Km: 5201.52459319
Distance entre Montréal et Paris en Miles: 3232.07308173
Distance entre Montréal et Paris en Miles Nautique: 2808.64386116


Dernière mise à jour : Vendredi, le 31 août 2012