Пример #1
0
 public function byAddress(Address $address)
 {
     $this->requestType = 'placesByAddress';
     $this->request->addQueryItem("city", $address->getCity()->getName());
     $this->request->addQueryItem("state", $address->getCity()->getState());
     $this->request->addQueryItem("street", $address->getStreet());
     $this->request->addQueryItem("number", $address->getNumber());
     return $this;
 }
Пример #2
0
 public function location()
 {
     $hideWhereAmI = true;
     $location = new Location();
     $location->load();
     if (!empty($_GET)) {
         $location = new Location();
         if (!empty($_GET['lat']) and !empty($_GET['lng'])) {
             $location->getPoint()->setLat($_GET['lat']);
             $location->getPoint()->setLng($_GET['lng']);
             $location->save();
         } elseif (!empty($_GET['cep'])) {
             $address = new Address();
             $address->setZipcode($_GET['cep']);
             $geocode = $this->api->geocode($address);
             if (!empty($geocode)) {
                 $location->getPoint()->setLat($geocode->getLat());
                 $location->getPoint()->setLng($geocode->getLng());
                 $revgeocode = $this->api->revgeocode($geocode->getLat(), $geocode->getLng());
                 $location->setAddress($revgeocode);
                 $location->save();
             } else {
                 $this->redirect("profile/location");
             }
         } elseif (!empty($_GET['cityState'])) {
             if (!strstr($_GET['cityState'], ',')) {
                 $this->redirect("profile/location");
             }
             $cityStateToUpper = strtoupper($_GET['cityState']);
             list($cityField, $stateField) = \explode(',', $cityStateToUpper);
             $city = new City();
             $city->setName(trim($cityField));
             $city->setState(trim($stateField));
             $address = new Address();
             $address->setCity(new City($city));
             $geocode = $this->api->geocode($address);
             if (!empty($geocode)) {
                 $location->getPoint()->setLat($geocode->getLat());
                 $location->getPoint()->setLng($geocode->getLng());
                 $location->getAddress()->setCity($city);
                 $location->save();
             } else {
                 $this->redirect("profile/location");
             }
         }
         $this->redirect("/");
     }
     $title = 'Onde estou';
     return compact('title', 'geocode', 'hideWhereAmI', 'location');
 }
Пример #3
0
 public function testSearchPlacesNearAnAddress()
 {
     $city = new City();
     $city->setName("Sorocaba");
     $city->setState("SP");
     $address = new Address();
     $address->setCity($city);
     $address->setStreet("Av. Barão de Tatuí");
     $address->setNumber("145");
     $request = $this->getPlaceRepo()->byAddress($address)->sortByDistance()->getRequest()->getUrlWithQueryString();
     $this->assertEquals("http://api.apontador.com.br/v1/search/places/byaddress?type=json&city=Sorocaba&state=SP&street=Av.+Bar%C3%A3o+de+Tatu%C3%AD&number=145&sort_by=distance", $request);
 }