PHP client library(SDK) for Google Maps API Web Services
$gmaps = new \yidas\googleMaps\Client(['key'=>'Your API Key']);
// Geocoding an address
$geocodeResult = $gmaps->geocode('Taipei 101, Taipei City, Taiwan 110');
// Look up an address with reverse geocoding
$reverseGeocodeResult = $gmaps->reverseGeocode([25.0339639, 121.5644722]);
// Request directions via public transit
$directionsResult = $gmaps->directions('National Palace Museum', 'Taipei 101', [
'mode' => "transit",
'departure_time' => time(),
]);
The PHP Client for Google Maps Services is a PHP Client library for the following Google Maps APIs:
- Maps
- Routes
- Places
- [Places API] (TBD)
- Geocoding API (Google Doc)
- Geolocation API (Google Doc)
- Time Zone API (Google Doc)
- PHP 7.0+ or higher
Each Google Maps Web Service request requires an API key or client ID. API keys are freely available with a Google Account at https://developers.google.com/console. The type of API key you need is a Server key.
To get an API key:
- Visit https://developers.google.com/console and log in with a Google Account.
- Select one of your existing projects, or create a new project.
- Enable the Google Maps Services API(s) you plan to use, such as:
- Directions API
- Distance Matrix API
- Geocoding API
- ...
- Create a new Server key.
- If you'd like to restrict requests to a specific IP address, do so now.
For guided help, follow the instructions for the [Directions API][directions-key]. You only need one API key, but remember to enable all the APIs you need. For even more information, see the guide to [API keys][apikey].
Important: This key should be kept secret on your server.
Run Composer in your project:
composer require yidas/google-maps-services
Then you could call it after Composer is loaded depended on your PHP framework:
require __DIR__ . '/vendor/autoload.php';
use yidas\googleMaps\Client;
Before using any Google Maps Services, first you need to create a Client with configuration, then use the client to access Google Maps Services.
Create a Client using API key:
$gmaps = new \yidas\googleMaps\Client(['key'=>'Your API Key']);
If you use Google Maps APIs Premium Plan license instead of an API key, you could create Client using client ID and client secret (digital signature) for authentication.
$gmaps = new \yidas\googleMaps\Client([
'clientID' => 'Your client ID',
'clientSecret' => 'Your digital signature'
]);
You could set language for Client for all services:
$gmaps = new \yidas\googleMaps\Client(['key'=>'Your API Key', 'language'=>'zh-TW']);
Changing language during execution:
$gmaps->setLanguage('zh-TW');
// ...
Elevation API overview | Google for Developers
// Get elevation by locations parameter
$elevationResult = $gmaps->elevation([25.0339639, 121.5644722]);
$elevationResult = $gmaps->elevation('25.0339639, 121.5644722');
Get a route | Google for Developers
$routes = $gmaps->computeRoutes($originArray, $destinationArray, $fullBodyArray, $fieldMask)
// Get the route data between two places simply
$routes = $gmaps->computeRoutes([
"location" => [
"latLng" => [
"latitude" => 37.419734,
"longitude" => -122.0827784
]
]
],
[
"location" => [
"latLng" => [
"latitude" => 37.41767,
"longitude" => -122.079595
]
]
]);
// Get the full route data between two places with full request data
$routes = $gmaps->computeRoutes([...], [...], ["travelMode": "DRIVE", ...], '*');
Snap to Roads | Google for Developers
$roads = $gmaps->snapToRoads([[-35.27801,149.12958], [-35.28032,149.12907], [-35.28099,149.12929]]);
Getting directions | Google for Developers
// Request directions via public transit
$directionsResult = $gmaps->directions('National Palace Museum', 'Taipei 101', [
'mode' => "transit",
'departure_time' => time(),
]);
Get started with the Distance Matrix API | Google for Developers
// Get the distance matrix data between two places
$distanceMatrixResult = $gmaps->distanceMatrix('National Palace Museum', 'Taipei 101');
// With Imperial units
$distanceMatrixResult = $gmaps->distanceMatrix('National Palace Museum', 'Taipei 101', [
'units' => 'imperial',
]);
Geocoding API overview | Google for Developers
// Geocoding an address
$geocodeResult = $gmaps->geocode('Taipei 101, Taipei City, Taiwan 110');
// Look up an address with reverse geocoding
$reverseGeocodeResult = $gmaps->reverseGeocode([25.0339639, 121.5644722]);
Geolocation API overview | Google for Developers
// Simple geolocate
$geolocateResult = $gmaps->geolocate([]);
Time Zone API overview | Google for Developers
// requests the time zone data for giving location
$timezoneResult = $gmaps->timezone([25.0339639, 121.5644722]);