Calcul d'une distance orthodromique

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

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)