Calcul d'une distance orthodromique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 086 fois - Téléchargée 18 fois

Contenu du snippet

Cette petite fonction permet de calculer une distance enter deux points grâce à leurs latitudes et longitudes.
J'ai réalisé cette fonction pour calculer la distance "à vol d'oiseau" entre deux villes.

Les deux derniers champs sont des options ce qui permet d'utiliser la fonction sommairement

echo distance_orthonormique(48.833, 2.333, 43.300, 5.367)." km séparent Paris de Marseille.";

Ce qui nous donnera :
658.86 km séparent Paris de Marseille.

Source / Exemple :


<?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;
}
?>

A voir également

Ajouter un commentaire

Commentaires

assemple
Messages postés
72
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
16 décembre 2011

L'orthographe ! Messieurs, l'orthographe !
s'épare NON ! : sépare !!!!
creazyhead
Messages postés
3
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
30 janvier 2012

Bonsoir,

J'avais trouvé, il s'agit de degré décimaux, mais souvent on parle plutot de d° m et s.

Merci
bossfoot
Messages postés
13
Date d'inscription
mercredi 31 mai 2006
Statut
Membre
Dernière intervention
7 avril 2009

@Bogs94 : Oui pardon j'ai confondu ^^

@creazyhead : en degré 48.833, 2.333 données récupérer sur le site de l'INSEE.
creazyhead
Messages postés
3
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
30 janvier 2012

Bonjour,

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!
Bogs94
Messages postés
1
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
1 février 2010

Dis moi, ce ne serait pas une distance orthodromique plutot ? (orthonormique je n'ai jamais entendu parler)
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.

Du même auteur (bossfoot)