Distance en mètre entre deux points avec coordonnées GPS

    25 Sept 2008  

      Distance en mètre entre deux points avec coordonnées GPS

Cette fonction permet de calculer la distance en mètres entre deux points dont on connaît la latitude et la longitude en degrés décimaux.
L'exemple ci-dessous permet de calculer la distance à vol d'oiseau entre Paris(lat = 48.856667, lng = 2.350987) et Lyon (lat = 45.767299, lng = 4.834329). Le resultat est affiché en kilomètres.
forty 25 Sept 2008
# Catégorie Compatibilité Nombre de vues Site Archive
   Maths PHP 4, PHP 5, PHP 7 66 704

       Code Source PHP


 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
                               
<?php
/**************************************************************************************/
/*
     Titre  : Distance en mètre entre deux points avec coordonnées GPS                                                    
                                                                                                                          
     URL    :  
     https://phpsources.net/code/php/maths/459_distance-en-metre-entre-deux-points-avec-coordonnees-gps
     Auteur         : forty                                                                                               
     Date edition   : 25 Sept 2008                                                                                        
     Website auteur : http://www.toplien.fr/                                                                              
*/
/**************************************************************************************/
// renvoi la distance en mètres
function get_distance_m($lat1$lng1$lat2$lng2) {
  $earth_radius 6378137;   // Terre = sphère de 6378km de rayon
  $rlo1 deg2rad($lng1);
  $rla1 deg2rad($lat1);
  $rlo2 deg2rad($lng2);
  $rla2 deg2rad($lat2);
  $dlo = ($rlo2 $rlo1) / 2;
  $dla = ($rla2 $rla1) / 2;
  $a = (sin($dla) * sin($dla)) + cos($rla1) * cos($rla2) * (sin($dlo) * sin($dlo
));
  $d atan2(sqrt($a), sqrt($a));
  return ($earth_radius $d);
}
echo (round(get_distance_m(48.8566672.35098745.7672994.834329) / 10003))
 . ' km';
// affiche 391.613 km
?>

...  Manuel PHP - Fonctions du code source

   php.net  Description Versions PHP OUTIL
   atan2 Arc tangent de deux variables PHP 4, PHP 5, PHP 7
   cos Cosinus PHP 4, PHP 5, PHP 7
   deg2rad Convertit un nombre de degrés en radians PHP 4, PHP 5, PHP 7
   echo Affiche une chaîne de caractères PHP 4, PHP 5, PHP 7
   round - PHP 5, PHP 7
   sin Sinus PHP 4, PHP 5, PHP 7
   sqrt Racine carrée PHP 4, PHP 5, PHP 7
Logiciels PHP  

    Les dernières parutions de scripts PHP

SuiteCRM 7.11.5

 
Langue drapeau en
Date  aujourd'hui
Taille 56 Mo
Catégorie CRM

Magix-CMS 3.2.1

 
Langue drapeau fr
Date  aujourd'hui
Taille 20 Mo
Catégorie CMS

B2evolution 7.0.0-alpha

 
Langue drapeau us
Date 14 Juin
Taille 24 Mo
Catégorie CMS

ZwiiCMS 9.1.09

 
Langue drapeau fr
Date 14 Juin
Taille 3 Mo
Catégorie CMS


  • L'ajout de commentaire est libre et ne demande pas d'inscription,
  •   invité

nous vous encourageons à contribuer à l'utilisation de PHP en ajoutant vos remarques.

[9]

  • ...

    Forty

    19 Oct 2009 à 11:36

    Il y a une version MySQL ici : www.phpsources.org/calcul-de-la-distance-entre-deux-coordonnees-gps-avec-mysql_101.html

  • ...

    Invité

    20 Jan 2010 à 11:00

    Problème inverse :
    Connaissant les coordonnées GPS d'une commune ($lat1, $lng1), comment déterminer les latitudes min et max, et les longitudes min et max, d'un cercle de rayon donné (par exemple 20km) dont le centre est ($lat1, $lng1) ? Autrement dit, comment pouvoir déterminer les communes situées autour d'une commune donnée dans un rayon de 20km ?
    Merci d'avance pour vos réponses.

  • ...
  • ...

    Invité

    30 Aout 2010 à 15:38

    Comment peut-on convertir des coordonnées polaires en des coordonnées cartésiennes

  • ...

    Invité

    16 Jan 2011 à 11:38

     Les coordonnées polaires sont constituées, avec un point de départ, d'une distance et d'un angle en radian.
    Tu sais que la-dite distance est le module, c'est -à dire racine carrée de la somme des carrés de x et y.
     
    Si tu suis la règle du triangle rectangle, tu as cos de l'angle qui est égal à l'abscisse x sur la longueur ( côté adjacent sur l'hypothénuse si mes ouvenirs sont bons. De là, tu tires x et y, d'où les coordonées carthésiennes.
     
    Cordialement

  • ...

    Invité

    28 Aout 2013 à 10:37

    Bonjour
    Le calcul fonctionne sur firefox et non sur ie ou chrome.

  • ...

    Invité

    10 Oct 2013 à 22:33

    N'importe quoi, un langage serveur s'exécute indépendamment du navigateur.

  • ...

    Invité

    17 Déc 2013 à 07:50

    Bonjour comment faire pour afficher le résultat en mètre parcque là, c'est en km.

  • ...

    Forty

    17 Déc 2013 à 08:37

    Pour mémoire 1 km = 1000 mètres
    En plus c'est bien indiqué que la fonction retourne des mètres.
    Il suffit donc de supprimer la division par 1000 :

    echo (round(get_distance_m(48.8566672.35098745.7672994.834329) / 10003))  . km'; 

    Ce qui donne avec cet exemple :
     
    echo get_distance_m(48.8566672.35098745.7672994.834329)' m'; 

    J'ai supprimé l'arrondi mais tu peux le laisser avec 0 décimales pour avoir des mètres sans virgule.
     

  Maths [ 82 ]

La série de Fibonacci Affiche toute les racines carrés à partir d'un entier Afficher les nombres premiers compris entre 0 à $n Arrondi au multiple le plus près Arrondi au multiple supérieur Base10 vers Base2 récursif Calcul de Pi Calcul de VPM Calcul des module et argument d'un nombre complexe, saisi arithmétiquement Calcul des pourcentages Calcul du triangle de pascal Calcul l'hypothenuse Calcul la puissance d'un nombre Calcul la racine carré d'un nombre Calcul le carre d'un nombre Calcul le cube d'un nombre Calcul le PGCD de 2 entiers Calcul le pgcd de 2 nombres Calcul le ppcm de 2 nombres Calcul le sinus en radian Calcule la médiane CCRC - Carré, Cube et Racine Carrée Check si un nombre est multiple d'un autre Conversion cartésien - polaire Conversion polaire -> cartésien Convertion binaire a décimal et d'hexadécimal à décimal Convertit les degrés en radians Crible d'Ératosthène 2 Crible de Eratosthène Dec2hex élargie   Distance en mètre entre deux points avec coordonnées GPS Distance Euclidienne Division avec reste Division et plus Division euclidienne Elever $x à la puissance $y Factorielle Floor avec Précision Fonction factorielle recursive Fractions : Addition de fractions Fractions : Division de fraction Fractions : Inverse d'une fraction Fractions : Mise en fraction Fractions : Partie entière d'une fraction Fractions : Produit de fractions Fractions : Puissance d'une fraction Fractions : Réduction d'une fraction Fractions : Soustraction de fractions Fractions : Valeur décimale d'une fraction Liste des diviseurs Liste des nombres parfaits Matrices : Affiche une matrice Matrices : Ajout de 2 matrices Matrices : Déterminant d'une matrice Matrices : Différence de 2 matrices Matrices : Inversion de matrice Matrices : Matrice coefficientée Matrices : Multiplication de matrices Matrices : Sous matrice Matrices : Transposée de matrice Matrices : Validateur de matrices Max2scale ext Polynome : Addition de polynomes Polynome : Dérivation d'un polynome Polynome : Dérivées d'un polynome Polynome : Discriminant de polynome Polynome : Primitive d'un polynome Polynome : Produit de polynome Polynome : Puissance d'un polynome Polynome : Racines simples d'un polynome Polynome : Soustraction de polynome Polynome : Valeur d'un polynome Primalité relative Régression linéaire Régression Polynomiale de degré 3 Régression Polynomiale de degré 4 Rotation de triangle Somme tous les arguments Théorème de Pythagore - Triangles Vérifier la parité d'un nombre (avec le modulo) Vérifier la parité d'un nombre inférieur à 1 000 000 000. Vérifier la primalité d'un nombre