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
Thèmes : php - script - api - google - webmaster
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";
}
?>