5/5 (11 avis)
Snippet vu 10 067 fois - Téléchargée 20 fois
<?php function distance_orthonormique($x1, $y1, $x2, $y2, $precision = 3, $r = 6378.14) { // La variable $r correspond au rayon de la Terre. // $x1, $x2 sont les latitudes de chaques points respectifs. // $y1, $y2 sont les longitudes de chaques points respectifs. // $precision permet d'obtenir le nombre de chiffre après la virgule. // Elle est définit à 3 par défaut permettant d'obtenir une précision au mètre. Il vous suffira de la multiplier par 1000. // On convertit les latitudes et longitudes en radian. $x1 = deg2rad($x1); $x2 = deg2rad($x2); $y1 = deg2rad($y1); $y2 = deg2rad($y2); // Calcule des distances entre les deux points. $dlat = $x2 - $x1; $dlong = $y2 - $y1; // On applique la formule. $a = sin($dlat/2)*sin($dlat/2) + cos($x1)*cos($x2)*sin($dlong/2)*sin($dlong/2); $c = 2 * atan2(sqrt($a), sqrt(1-$a)); // On récupère la valeur du résutat arrondi avec la précision. $d = round($r*$c, $precision); // On renvoit la distance en km return $d; } ?>
12 févr. 2010 à 21:17
s'épare NON ! : sépare !!!!
3 févr. 2010 à 23:38
J'avais trouvé, il s'agit de degré décimaux, mais souvent on parle plutot de d° m et s.
Merci
3 févr. 2010 à 23:31
@creazyhead : en degré 48.833, 2.333 données récupérer sur le site de l'INSEE.
1 févr. 2010 à 17:57
Bravo, c'est super, j'avais essayé d'obtenir la même chose mais ma fonction était bien moins performante et pas aussi siplifiée!
Par contre sous quel format rentre t'on les lattitudes et longitudes?
Merci et encore bravo!
1 févr. 2010 à 08:44
La distance la plus courte à vol d'oiseau prenant en compte la rotondité de la Terre...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.