alexpechkarev / google-geocoder
Simple Google Geocoding API v3 wrapper for Laravel 4/5, Slim3 etc
Installs: 180 353
Dependents: 0
Suggesters: 0
Security: 0
Stars: 74
Watchers: 6
Forks: 13
Open Issues: 0
Requires
- php: >=5.4.0
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2024-12-19 02:46:07 UTC
README
This package provides simple facility to make The Google Geocoding API v3 calls with Laravel 5.
See Collection of Google Maps API Web Services for Laravel that also includes Google Geocoding API v3.
Laravel 5
Dependency
PHP cURL required
Installation
To install edit composer.json
and add following line:
"alexpechkarev/google-geocoder": "dev-master"
Run composer update
Configuration
Once installed, register Laravel service provider, in your config/app.php
:
'providers' => array( ... 'Alexpechkarev\GoogleGeocoder\GoogleGeocoderServiceProvider', )
Next, create a config/google-geocoder.php
, containing:
<?php return [ /* |-------------------------------------------------------------------------- | Google Geocoder |-------------------------------------------------------------------------- | Geocoding is the process of converting addresses (like "1600 Amphitheatre Parkway, Mountain View, CA") | into geographic coordinates (like latitude 37.423021 and longitude -122.083739), | which you can use to place markers or position the map. | */ /* |-------------------------------------------------------------------------- | Application Key |-------------------------------------------------------------------------- | | Your application's API key. This key identifies your application for | purposes of quota management. Learn how to get a key from the APIs Console. */ 'applicationKey' => 'my-api-key', /* |-------------------------------------------------------------------------- | Request URL |-------------------------------------------------------------------------- | */ 'requestUrl' => [ 'json' => 'https://maps.googleapis.com/maps/api/geocode/json?', 'xml' => 'https://maps.googleapis.com/maps/api/geocode/xml?' ], ];
Slim 3
Settings
return [ 'settings' => [ /* slim settings */ 'displayErrorDetails' => true, 'determineRouteBeforeAppMiddleware' => true, 'google' => [ 'geocoder' => [ 'applicationKey' => 'my-api-key', 'requestUrl' => [ 'json' => 'https://maps.googleapis.com/maps/api/geocode/json?', 'xml' => 'https://maps.googleapis.com/maps/api/geocode/xml?' ] ] ] ] ];
Container Dependency
use GoogleGeocoder\GoogleGeocoder; $container['GeoCoder'] = function ($container) { return new GoogleGeocoder($container->get('settings')['google']['geocoder']); };
Using
$gc = $this->container['GeoCoder'];
Usage
Before making calls please ensure you obtain API Key to identify your application and add this key in the configuration file. More information on API Key please refer to The Google Geocoding API.
'applicationKey' => 'your-api-key',
Create an array with key=>value pairs specifying address you would like to geocode:
$param = array("address"=>"76 Buckingham Palace Road London SW1W 9TQ");
Use following command to receive Geocoding response in json format, use xml as first parameter for XML response.
$response = \Geocoder::geocode('json', $param);
To restrict your results to a specific area use component filter Component Filtering by adding it's filters to parameter array.
$param = array( "address"=>"76 Buckingham Palace Road London SW1W 9TQ", "components"=>"country:GB" );
Geocoding API supports translation of map coordinates into human-readable address by reverse geocoding using latitude and longitude parameters. For more details refer to Reverse Geocoding To make reverse geocoding request use following:
$param = array("latlng"=>"40.714224,-73.961452"); $response = \Geocoder::geocode('json', $param);
All requests will return string
value. For Response example, Status Codes,
Error Messages and Results please refer to [Geocoding Responses]
(https://developers.google.com/maps/documentation/geocoding/#GeocodingResponses)
Support
Please open an issue on GitHub
License
Google Geocoder for Laravel 5 is released under the MIT License. See the bundled LICENSE file for details.