Page 1 sur 1

géolocalisation

Posté : 28 nov. 2013, 15:27
par efedril
Bonjour à tous

je cherche a utiliser correctement l'API Googlemaps afin de récupérer les coordonnées d'une adresse pour se faire je créer le code suivant qui pour le moment m'affiche le résultat retourner
<?php
// On prépare l'adresse à rechercher
$address = "Palais de l'Elysée 55, rue du faubourg Saint-Honoré 75008 Paris";
 
// On prépare l'URL du géocodeur
$geocoder = "http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false";
 
// Pour cette exemple, je vais considérer que ma chaîne n'est pas
// en UTF8, le géocoder ne fonctionnant qu'avec du texte en UTF8
$url_address = utf8_encode($address);
 
// Penser a encoder votre adresse
$url_address = urlencode($url_address);
 
// On prépare notre requête
$query = sprintf($geocoder,$url_address);
 
// On interroge le serveur
$results = file_get_contents($query);
 
// On affiche le résultat
var_dump(json_decode($results));
?>

résultat retourner :
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Le Palais de L'Élysée",
               "short_name" : "Le Palais de L'Élysée",
               "types" : [ "point_of_interest", "establishment" ]
            },
            {
               "long_name" : "55",
               "short_name" : "55",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Rue du Faubourg Saint-Honoré",
               "short_name" : "Rue du Faub. Saint-Honoré",
               "types" : [ "route" ]
            },
            {
               "long_name" : "8e Arrondissement",
               "short_name" : "8e Arrondissement",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Paris",
               "short_name" : "Paris",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Paris",
               "short_name" : "75",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Île-de-France",
               "short_name" : "IDF",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "France",
               "short_name" : "FR",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "75008",
               "short_name" : "75008",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Le Palais de L'Élysée, 55 Rue du Faubourg Saint-Honoré, 75008 Paris, France",
         "geometry" : {
            "location" : {
               "lat" : 48.8704156,
               "lng" : 2.3167539
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 48.8777544,
                  "lng" : 2.3327613
               },
               "southwest" : {
                  "lat" : 48.8630757,
                  "lng" : 2.3007465
               }
            }
         },
         "types" : [ "point_of_interest", "establishment" ]
      }
   ],
   "status" : "OK"
}
mais voila j'aimerais extraire les "lat" : 48.8630757, "lng" : 2.3007465 mais je sais pas comment mi prendre.

Re: géolocalisation

Posté : 28 nov. 2013, 15:42
par damien_55
hello,

Il te faut parser le json retourner, pour commencer tu peux lire cette doc: http://php.net/manual/fr/function.json-decode.php

Re: géolocalisation

Posté : 28 nov. 2013, 15:48
par efedril
je passe deja par json_decode mais je sais plus comment le recup l'info dans le tableaux qui met retourné

Re: géolocalisation

Posté : 28 nov. 2013, 16:23
par damien_55
il te faut suivre le chemein de ton élément pour y accéder:

ce doit etre a vu de nez:
result->geometry->viewport->southwest->lat
et
result->geometry->viewport->southwest->lng

Re: géolocalisation

Posté : 28 nov. 2013, 18:27
par yann18
ça donnerait plutôt ceci:

$data = json_decode($results);
$data->results[0]->geometry->viewport->southwest->lat;
$data->results[0]->geometry->viewport->southwest->lng;


Re: géolocalisation

Posté : 02 déc. 2013, 13:12
par efedril
merci a vous tous pour ses réponses rapide j'ai réussi grâce a vous^^