Il peut être utile de devoir calculer une distance entre deux villes , pour par exemple savoir si tel ou tel service est disponible dans un rayon de X kilomètres du lieu de votre choix.
Je me suis donc mis à chercher comment réaliser cela , je suis finalement tombé sur la formule de calcul orthodromique sur Lion1906. C’est une méthode qui prend en compte la sphéricité de la terre et fournie donc un calcul plutôt proche de la réalité.
La formule est la suivante :
6371*acos(cos(LatitudeA)*cos(LatitudeB)*cos(longitudeB-longitudeA)+sin(LatitudeA)*sin(latitudeB))
Elle fournit donc la distance en kilomètre entre un point A et un point B. Les coordonnées correspondent aux angles décimaux convertis en radian.
Vous pouvez très simplement obtenir les angles décimaux d’une position via Google maps par exemple.
Et pour finir une petite application de la formule en php :
//Calcul de distance entre Paris et Dijon
$longA = 2.3458*(M_PI/180);
$latA = 48.8608*(M_PI/180);
$longB = 5.0356*(M_PI/180);
$latB = 47.3225*(M_PI/180);
$subBA = bcsub ($longB, $longA, 20);
$cosLatA = cos($latA);
$cosLatB = cos($latB);
$sinLatA = sin($latA);
$sinLatB = sin($latB);
$distance = 6371*acos($cosLatA*$cosLatB*cos($subBA)+$sinLatA*$sinLatB);
echo $distance ;