Compare commits

...

3 Commits

@ -17,7 +17,7 @@
],
"require": {
"php": "^8.1",
"laravel/framework": "^9.19",
"laravel/framework": ">=9.19",
"spatie/geocoder": "^3.15",
"spatie/laravel-data": "^3.11"
},

@ -16,9 +16,12 @@ interface GeocodingServiceContract
public function getCoordinatesForAddress(string $address): GeocodingResponseData;
/**
* @param float $latitude
* @param float $longitude
* @return array
* Retrieves the address for the given coordinates.
*
* @param float $latitude The latitude of the coordinates.
* @param float $longitude The longitude of the coordinates.
*
* @return GeocodingResponseData The address information for the given coordinates.
*/
public function getAddressForCoordinates(float $latitude, float $longitude): array;
public function getAddressForCoordinates(float $latitude, float $longitude): GeocodingResponseData;
}

@ -37,8 +37,16 @@ class GeocodingService implements GeocodingServiceContract
*/
public function getCoordinatesForAddress(string $address): GeocodingResponseData
{
$response = $this->geocoder->getCoordinatesForAddress($address);
$viewport = array_key_exists('viewport', $response)
? get_object_vars($response['viewport'])
: [];
$response['viewport'] = $viewport;
return GeocodingResponseData::from(
$this->geocoder->getCoordinatesForAddress($address)
$response
);
}
@ -48,10 +56,20 @@ class GeocodingService implements GeocodingServiceContract
* @param float $latitude The latitude of the coordinates.
* @param float $longitude The longitude of the coordinates.
*
* @return array The address information for the given coordinates.
* @return GeocodingResponseData The address information for the given coordinates.
*/
public function getAddressForCoordinates(float $latitude, float $longitude): array
public function getAddressForCoordinates(float $latitude, float $longitude): GeocodingResponseData
{
return $this->geocoder->getAddressForCoordinates($latitude, $longitude);
$response = $this->geocoder->getAddressForCoordinates($latitude, $longitude);
$viewport = array_key_exists('viewport', $response)
? get_object_vars($response['viewport'])
: [];
$response['viewport'] = $viewport;
return GeocodingResponseData::from(
$response
);
}
}
Loading…
Cancel
Save