/** * Checks the geocoded data method with a GeocoderRequest */ public function testGeocodedDataWithGeocoderRequest() { $request = new GeocoderRequest(); $request->setAddress('address'); $response = self::$provider->getGeocodedData($request); $this->assertInstanceOf('ivory\\GoogleMapBundle\\Model\\Services\\Geocoding\\Result\\GeocoderResponse', $response); }
/** * Generates geocoding URL API according to the request * * @param Ivory\GoogleMapBundle\Model\Services\Geocoding\GeocoderRequest $geocoderRequest * @return string */ protected function generateUrl(GeocoderRequest $geocoderRequest) { $httpQuery = array(); if ($geocoderRequest->hasAddress()) { $httpQuery['address'] = $geocoderRequest->getAddress(); } else { $httpQuery['latlng'] = sprintf('%s,%s', $geocoderRequest->getCoordinate()->getLatitude(), $geocoderRequest->getCoordinate()->getLongitude()); } if ($geocoderRequest->hasBound()) { $httpQuery['bound'] = sprintf('%s,%s|%s,%s', $geocoderRequest->getBound()->getSouthWest()->getLatitude(), $geocoderRequest->getBound()->getSouthWest()->getLongitude(), $geocoderRequest->getBound()->getNorthEast()->getLatitude(), $geocoderRequest->getBound()->getNorthEast()->getLongitude()); } if ($geocoderRequest->hasRegion()) { $httpQuery['region'] = $geocoderRequest->getRegion(); } if ($geocoderRequest->hasLanguage()) { $httpQuery['language'] = $geocoderRequest->getLanguage(); } $httpQuery['sensor'] = $geocoderRequest->hasSensor() ? 'true' : 'false'; return sprintf('%s/%s?%s', $this->getUrl(), $this->getFormat(), http_build_query($httpQuery)); }