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; }
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'); }
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); }