Comme spécifié dans l'article, il est possible, à partir de coordonnées, de connaitre la distance entre 2 points.
Exemple ici :
http://www.galle.fr/dev/latitude-longitude.phpIl y a plusieurs facons de calculer les distances, j'ai utilisé la plus simple pour cette page.
Bien que ca ne soit pas la plus juste pour de très longues distances (je vous laisse deviner pourquoi), elle s'accommode très bien à des distances 'nationales'.
Le script de la page ci-dessus, ci-dessous :
Code:
<title>Calcul de distance entre latitudes et longitudes</title>
<h2>Calcul de distance entre latitudes et longitudes</h2>
<?
foreach($_POST as $k => $v)
$_POST[$k] = str_replace(",",".",$v);
$lat1 = deg2rad($_POST['lat1']);
$lon1 = deg2rad($_POST['long1']);
$lat2 = deg2rad($_POST['lat2']);
$lon2 = deg2rad($_POST['long2']);
$dlat = $lat2-$lat1;
$dlon = $lon2-$lon1;
$R = 6371.03;
$a = pow((sin($dlat/2)),2) + cos($lat1) * cos($lat2) * pow((sin($dlon/2)),2);
$c = 2*atan2(sqrt($a),sqrt(1-$a));
$d = $R*$c;
$d = number_format($d,2);
echo $d;
/*
foreach($_POST as $k => $v)
echo "<br>".$k."-->".$v;
*/
foreach($_POST as $k => $v)
$_POST[$k] = str_replace(".",",",$v);
?>
<form name=truc method=POST>
<p>
<u>Point 1:</u>
<br>Latitude 1: <input name="lat1" value="<?=$_POST['lat1']?>"> Longitude 1: <input name="long1" value="<?=$_POST['long1']?>"></p>
<u>Point 2 :</u>
<br>
Latitude 2: <input name="lat2" value="<?=$_POST['lat2']?>"> Longitude 2: <input name="long2" value="<?=$_POST['long2']?>"></p>
<input name="result" value="<?=str_replace(array(",","."),array(" ",","),$d)?> km">
<input type=submit name=submit value=submit>
</form>
<hr>
<font size=1>
Pour info :
<br>
<p>Lyon :
<br> - Latitude : 45.75
<br> - Longitude : 4.85
<p>Villeurbanne :
<br> - Latitude : 45.766667
<br> - Longitude : 4.883333
<p>Paris :
<br> - Latitude : 48.866667
<br> - Longitude : 2.333333
<p>Marseille :
<br> - Latitude : 43.3
<br> - Longitude : 5.4
<p><i>Histoire de voir les longitudes négatives...</i>
<p>Rennes :
<br> - Latitude : 48.083333
<br> - Longitude : -1.683333
<p>Quimper :
<br> - Latitude : 48
<br> - Longitude : -4.1
<p>Brest :
<br> - Latitude : 48.4
<br> - Longitude : -4.483333