Comment convertir des coordonnées GPS en adresse avec PHP ?
Réponses rédigées par Antoine
Dernière mise à jour : 2018-08-27 15:59:29
Question
Comment faire pour convertir des coordonnées GPS, latitude et longitude, en adresse, avec PHP et l'API de Google ?
Réponse
Mis à jour : 25/12/2018
Google met à disposition une API de géolocalisation qui permet tout un panel de choses dont la possibilité de récupérer à partir de coordonnées GPS, à savoir une lattitude et une longitude, l'adresse exacte du lieu en question.
Remarque : Google impose désormais l'obtention d'une clé API. Vous pouvez l'obtenir via https://cloud.google.com/maps-platform/user-guide/account-changes/?apis=places
Voici le code PHP à utiliser.
<?php
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
$latitude = "48.868802501018536";
$longitude = "2.3101329803466797";
$clef = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$geolocation = $latitude.','.$longitude;
$request = 'https://maps.googleapis.com/maps/api/geocode/json?key='.$clef.'&latlng='.$geolocation.'&sensor=false';
$file_contents = file_get_contents($request);
$json_decode = json_decode($file_contents);
if(isset($json_decode->results[0])) {
$response = array();
foreach($json_decode->results[0]->address_components as $addressComponet) {
$response[] = $addressComponet->long_name;
}
if(isset($response[0])){ $num = $response[0]; } else { $num = ''; }
if(isset($response[1])){ $rue = $response[1]; } else { $rue = ''; }
if(isset($response[2])){ $ville = $response[2]; } else { $ville = ''; }
if(isset($response[3])){ $departement = $response[3]; } else { $departement = ''; }
if(isset($response[4])){ $region = $response[4]; } else { $region = ''; }
if(isset($response[5])){ $pays = $response[5]; } else { $pays = ''; }
if(isset($response[6])){ $cp = $response[6]; } else { $cp = ''; }
echo "$num $rue $cp $ville $departement $region $pays";
}
?>