Calcul de distance en fonction de la latitude et longitude en PHP

calcul de distance géographiqueLe calcul de la distance en fonction de la latitude et longitude cause bien souvent des maux de tête. En effet, si la Terre était plate, on pourrait tout simplement utiliser le théorème de Pythagore, selon lequel, dans un triangle rectangle, le carré de la longueur de l’hypoténuse (le côté opposé à l’angle droit) est égal à la somme des carrés des longueurs des deux autres côtés (vous vous souvenez sans doute de la formule a2 + b2 = c2 que vous avez vue à l’école). Mais la Terre n’est bien sûr pas plate…

Dans le code ci-dessous, j’utilise la formule de l’haversine pour calculer la distance entre 2 points en fonction de leur latitude et longitude.

Ce calcul est un peu compliqué et je ne le décrirai donc pas en détail (voir l’article en anglais sur Wikipédia pour de plus amples informations). Laissez-moi plutôt vous donner une description générale de cette fonction :

  • En utilisant la formule de l’haversine, on calcule la distance en degrés entre les deux coordonnées GPS.
  • La valeur en degrés est ensuite convertie en kilomètres (par défaut), milles ou milles nautiques, suivant vos besoins.
  • La distance est donnée avec la précision choisie (2 décimales par défaut).

Tenez compte que vu que la Terre n’est pas une sphère parfaite, une petite marge d’erreur est associée à la formule de l’haversine.

Voici un exemple de comment utiliser cette fonction, avec des coordonnées GPS de notre base de données worldCities.

Pour de plus amples détails sur les problèmes liés au calcul de distance, voir l’article en anglais de Wikipédia sur les distances géographiques, dans lequel sont données d’autres formules, certaines plus précises pour de longues distances et d’autres pour de courtes distances.

Leave a comment