/** * 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; }