This is a simple laravel package to get basic information from the Google Directions API.
To install this library into your project simply do the following in your project root:
composer require wubs/simple-google-directions-api:0.*
If you use Laravel, add 'Wubs\Directions\DirectionsServiceProvider',
to app/config.php
in the providers array and
add
'Directions' => 'Wubs\Directions\Facades\Directions',
to the aliases array, also in app/config.php
.
You can use the facade like this:
<?php
$options = new DirectionOptions(
DirectionOption::origin($address1->latitude, $address1->longitude),
DirectionOption::destination($address2->latitude, $address2->longitude),
DirectionOption::mode(TravelModes::BICYCLING),
DirectionOption::alternatives(true),
DirectionOption::language("nl_NL"),
DirectionOption::departureTime(Carbon::now())
);
$routes = Directions::route($options);
Or get it from the IoC container like so:
<?php
$api = $app->make('\Wubs\Directions\Directions')
Or inject it into a constructor
<?php namespace App\Http\Controllers;
use Wubs\Directions\Directions;
class DirectionsController extends Controller
{
private $api;
public function __construct(Directions $directions)
{
$this->directions = $directions;
}
}
Publish the configuration by running:
php artisan vendor:publish
Afterwards the configuration will be located in config/directions.php
I highly recommend using the .env file.
The package is also usable without Laravel. See the code below.
<?php
require 'vendor/autoload.php'
use Wubs\Directions\Directions;
$directions = new Directions(getenv("GOOGLE_DIRECTIONS_SERVER_KEY"));
$zipApi = new Wubs\Zip\ZipApi(getenv("ZIP_API_KEY"));
$address1 = $zipApi->address("8316PB", 28);
$address2 = $zipApi->address("6821HX", 1);
$options = new DirectionOptions(
DirectionOption::origin($address1->latitude, $address1->longitude),
DirectionOption::destination($address2->latitude, $address2->longitude),
DirectionOption::mode(TravelModes::BICYCLING),
DirectionOption::alternatives(true),
DirectionOption::language("nl_NL"),
DirectionOption::departureTime(Carbon::now())
);
$response = $directions->route($options);