Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Matthieu Napoli

blog technique

Transformer une adresse en coordonnées géographiques avec le service Geocoding de Google Maps

Google Maps propose une API Javascript largement utilisée aujourd'hui par de nombreux sites. Cet API permet d'intégrer des cartes facilement.

Google Maps propose également un autre service de géocoding, cette fois ci non pas en Javascript mais sous la forme d'un service web REST. Son utilisation est simplissime, et d'une puissance incroyable. Un exemple tout simple consiste à récupérer les coordonnées géographiques (latitude, longitude) correspondant à une adresse.

Voici un exemple en PHP. Il requiert une clé Google Maps pour fonctionner.

/**
* Recherche les coordonnées d'une adresse avec le service Google Maps
* @param adresse string
* @return array(id_result => array(adresse_complete, latitude, longitude))
*/

function get_coordonees_from_adresse($adresse)
{
  $adresse = urlencode($adresse);
  $url = 'http://maps.google.com/maps/geo?q=' . $adresse . '&output=xml&oe=utf8&gl=fr&sensor=false&key=' . GMAP_KEY;
  $page = file_get_contents($url);
  // Parse le résultat XML
  $xml_result = new SimpleXMLElement($page);
  // Vérifie que la requête a réussi
  if ($xml_result->Response->Status->code != 200) return array();
  // Charge les adresses
  $adresses = array();
  foreach ($xml_result->Response->Placemark as $place) {
    list($longitude, $latitude, $altitude) = explode(',', $place->Point->coordinates);
    // Ajoute au tableau
    $adresses[] = array('adresse_complete' => utf8_decode($place->address),
             'latitude' => $latitude,
             'longitude' => $longitude);
  }
  return $adresses;
}

Cette fonction renvoie un tableau contenant, pour chaque résultat (il peut y'en avoir plusieurs en cas d'ambiguité) l'adresse trouvée (pratique pour différencier plusieurs résultats) et la latitude/longitude.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 17 juillet 2009 15:33 par MadMatt
Classé sous : , , , ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [ #SharePoint 2016 ] frappe à nos portes ! (1/2) par Le blog de Patrick [MVP Office 365] le 04-19-2015, 23:21

- Lync devient Skype Entreprise par Le petit blog de Pierre / Pierre's little blog le 04-18-2015, 22:47

- [WCF] Prendre la main sur les protocoles par Blog de Jérémy Jeanson le 04-18-2015, 12:57

- yOS Tour Geneva - Retour des sessions par Blog Technique de Romelard Fabrice le 04-16-2015, 11:54

- YOS Genève 2015 : gestion des gros fichiers et plus … par The Mit's Blog le 04-13-2015, 11:56

- YOS Genève 2015 : App et bonnes pratiques par The Mit's Blog le 04-13-2015, 10:55

- [YOS Genève 2015] : Et si on adoptait enfin nos espaces collaboratifs par The Mit's Blog le 04-13-2015, 09:48

- [WCF] Les bases d’une configuration clean par Blog de Jérémy Jeanson le 04-11-2015, 11:48

- Dernière partie de cache cache avec l’AppFabric le 2/04/2016 par Blog de Jérémy Jeanson le 04-08-2015, 23:01

- [WCF] Binding REST et SSL, c’est possible par Blog de Jérémy Jeanson le 04-04-2015, 09:19