bodunde / geocoder
A laravel package that helps you with geocoding addresses and reverse geocoding coordinates using the google maps api. It also helps in calculating the distance between two locations using the Hervasine formula and the coordinates of the locations
v1.2.1
2016-10-09 18:19 UTC
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: *
- illuminate/support: ~5
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2025-02-01 22:29:49 UTC
README
A Laravel Package that interfaces with the google maps API to help convert a plain address to longitude and latitude coordinates and vice-versa. It can also calculate the distance (in kilometers or miles) between two locations using their coordinates.
Installation
- include the package in your
composer.json
file and runcomposer update
or runcomposer require bodunde/geocoder
or you can do it oldschool and just clone the repo and include it in your application. - navigate to your
config
directory in your laravel application and locate theapp.php
file - add this line to your service provide
Bodunde\GoogleGeocoder\GeocoderServiceProvider::class
- publish its config file by running
php artisan vendor:publish
- include your
google_api_key
ingeocoder.php
file located in the config directory Voila!!! You are done
Usage
<?php namespace Your\Namespace; use Bodunde\GoogleGeocoder\Geocoder; ... ... // using dependency injection public function index(Geocoder $geocoder) { // get coordinates $coordinates = $geocoder->getCoordinates('55 Moleye Street, Yaba'); // get address via reverse geocoding $addressCoordinates = [ "lat" => 6.5349646, "lng" => 3.3892894 ]; $address = $geocoder->getAddress($addressCoordinates); // get distance between two locations $location1 = [ "lat" => 6.5349646, "lng" => 3.3892894 ]; $location2 = [ "lat" => 6.601838, "lng" => 3.3514863 ]; $distance = $geocoder->getDistanceBetween($location1, $location2); /** geocoder can also be instantiated normally without DI */ //e.g $geocoder = new Geocoder; }
Tests
In the package root run phpunit