GithubHelp home page GithubHelp logo

yidas / google-maps-services-php Goto Github PK

View Code? Open in Web Editor NEW
67.0 9.0 33.0 47 KB

PHP client library (SDK) for Google Maps API Web Services

Home Page: https://yidas.github.io/google-maps-services-php/

License: MIT License

PHP 100.00%
php php-client google-maps-api-php google-maps-sdk google-maps-services

google-maps-services-php's Introduction

Google Maps Services for PHP


PHP client library(SDK) for Google Maps API Web Services

Latest Stable Version License Total Downloads Monthly Downloads

OUTLINE


DEMONSTRATION

$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(),
    ]);

DESCRIPTION

The PHP Client for Google Maps Services is a PHP Client library for the following Google Maps APIs:


REQUIREMENTS

  • PHP 7.0+ or higher

API keys

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:

  1. Visit https://developers.google.com/console and log in with a Google Account.
  2. Select one of your existing projects, or create a new project.
  3. Enable the Google Maps Services API(s) you plan to use, such as:
    • Directions API
    • Distance Matrix API
    • Geocoding API
    • ...
  4. Create a new Server key.
  5. 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.


INSTALLATION

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;

USAGE

Before using any Google Maps Services, first you need to create a Client with configuration, then use the client to access Google Maps Services.

Client

Create a Client using API key:

$gmaps = new \yidas\googleMaps\Client(['key'=>'Your API Key']);

Google Maps APIs Premium Plan license

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

Language

You could set language for Client for all services:

$gmaps = new \yidas\googleMaps\Client(['key'=>'Your API Key', 'language'=>'zh-TW']);

list of supported languages - Google Maps Platform

Changing language during execution:

$gmaps->setLanguage('zh-TW');
// ...

APIs

Elevation API

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

Routes API

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", ...], '*');

Roads API

Snap to Roads | Google for Developers

$roads = $gmaps->snapToRoads([[-35.27801,149.12958], [-35.28032,149.12907], [-35.28099,149.12929]]);

Directions API

Getting directions | Google for Developers

// Request directions via public transit
$directionsResult = $gmaps->directions('National Palace Museum', 'Taipei 101', [
    'mode' => "transit",
    'departure_time' => time(),
    ]);

Distance Matrix API

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

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

Geolocation API overview | Google for Developers

// Simple geolocate
$geolocateResult = $gmaps->geolocate([]);

Time Zone API

Time Zone API overview | Google for Developers

// requests the time zone data for giving location
$timezoneResult = $gmaps->timezone([25.0339639, 121.5644722]);

google-maps-services-php's People

Contributors

dereuromark avatar genesiscz avatar yidas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

google-maps-services-php's Issues

Add PHPDocs for various methods on Client class

It would be great if we could have PHPDocs for the various methods on the client class - which could provide some code completion for the likes of PHPStorm / intellisense.

Something like below on the Client class would be pretty beneficial:

/**
 * Google Maps PHP Client
 *
 * @author  Nick Tsai <[email protected]>
 * @version 1.0.0
 *
 * @method array distanceMatrix(string $origin, string $destination, array $params = [])
 ...
 */
class Client

I don't mind putting together a PR for this either.

Fix the readme composer instructions

The readme instructs the user to run the following command
composer require yidas/google-map-sdk

This is incorrect, as that package does not exist. The correct command is :

composer require yidas/google-maps-services

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.