public function load(ObjectManager $manager) { $index = 1; $file = fopen(__DIR__ . "/peuplerLieu.csv", "r"); while (true) { $line = fgetcsv($file, 0, ';'); if (empty($line) || is_null($line)) { break; } $temps = new Lieu(); $temps->setNom($line[0])->setNumeroRue(intval($line[1]))->setNomRue($line[2])->setComplementAdresse($line[3])->setCodePostal(intval($line[4]))->setVille($line[5])->setLatitude(floatval($line[6] . "The"))->setLongitude(floatval($line[7] . "The")); $manager->persist($temps); $this->addReference("lieu-" . $index, $temps); $index++; } fclose($file); $manager->flush(); }
/** * 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; }