par anonyme 27-Aout-2018

Comment faire pour convertir des coordonnées GPS, latitude et longitude, en adresse, avec PHP et l'API de Google ?

1 Réponse

par Zyz 27-Aout-2018

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";
}
?>
Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses d'Antoine et d'autres internautes.

2.6k questions

3k réponses

...