예제 #1
0
 /**
  * Récupère les informations d'un lieu en fonction d'une adresse
  * @param $adresse <i>(string)</i> adresse d'un lieu
  * @return <i>moove\ActiviteBundle\Entity\Lieu</i>
  */
 private function getInfosAdresse($adresse)
 {
     // On créé un objet GoogleMapsGeocoder prenant en paramètre l'adresse du lieu $adresse
     $geocodeLieu = new \GoogleMapsGeocoder($adresse);
     // On enregistre le résultat de la requête faite à GoogleMapsAPI pour récupérer les informations du lieu
     $reponse = $geocodeLieu->geocode();
     // On récupère les infos sur le lieu
     $infosLieu = $reponse['results'][0]['address_components'];
     // On récupère la latitude et longitude sur le lieu
     $latLngLieu = $reponse['results'][0]['geometry']['location'];
     // On créer un nouveau Lieu à partir des informations de Google
     $lieu = new Lieu();
     // On remplis certaine information non disponible via Google
     $lieu->setNom(null)->setComplementAdresse(null)->setLatitude($latLngLieu['lat'])->setLongitude($latLngLieu['lng']);
     foreach ($infosLieu as $value) {
         if (strcmp($value['types'][0], 'street_number') == 0) {
             $lieu->setNumeroRue($value['long_name']);
         } elseif (strcmp($value['types'][0], 'route') == 0) {
             $lieu->setNomRue($value['long_name']);
         } elseif (strcmp($value['types'][0], 'locality') == 0) {
             $lieu->setVille($value['long_name']);
         } elseif (strcmp($value['types'][0], 'postal_code') == 0) {
             $lieu->setCodePostal($value['long_name']);
         }
     }
     return $lieu;
 }