2017 © Pedro Peláez
 

library geocoder

Geocoding addresses to coordinates

image

spatie/geocoder

Geocoding addresses to coordinates

  • Tuesday, May 15, 2018
  • by Spatie
  • Repository
  • 15 Watchers
  • 296 Stars
  • 40,443 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 44 Forks
  • 2 Open issues
  • 24 Versions
  • 18 % Grown

The README.md

Geocode addresses to coordinates

Latest Version MIT Licensed run-tests Check & fix styling Total Downloads, (*1)

This package can convert any address to GPS coordinates using Google's geocoding service. Here's a quick example:, (*2)

Geocoder::getCoordinatesForAddress('Samberstraat 69, Antwerpen, Belgium');

// will return this array
[
   'lat' => 51.2343564,
   'lng' => 4.4286108,
   'accuracy' => 'ROOFTOP',
   'formatted_address' => 'Samberstraat 69, 2060 Antwerpen, Belgium',
   'viewport' => [
       "northeast" => [
            "lat" => 51.23570538029149,
            "lng" => 4.429959780291502
        ],
        "southwest" => [
            "lat" => 51.2330074197085,
            "lng" => 4.427261819708497
        ]
   ]
]

Support us

Learn how to create a package like this one, by watching our premium video course:, (*3)

Laravel Package training, (*4)

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products., (*5)

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall., (*6)

Installation

You can install this package through composer., (*7)

composer require spatie/geocoder

Laravel installation

Though the package works fine in non-Laravel projects we included some niceties for our fellow artistans., (*8)

In Laravel 5.5 the package will autoregister itself. In older versions of Laravel you must manually install the service provider and facade., (*9)

// config/app.php
'providers' => [
    '...',
    Spatie\Geocoder\GeocoderServiceProvider::class
];
// config/app.php
'aliases' => array(
    ...
    'Geocoder' => Spatie\Geocoder\Facades\Geocoder::class,
)

Next, you must publish the config file :, (*10)

php artisan vendor:publish --provider="Spatie\Geocoder\GeocoderServiceProvider" --tag="config"

This is the content of the config file:, (*11)

return [

   /*
    * The api key used when sending Geocoding requests to Google.
    */
   'key' => env('GOOGLE_MAPS_GEOCODING_API_KEY', ''),


   /*
    * The language param used to set response translations for textual data.
    *
    * More info: https://developers.google.com/maps/faq#languagesupport
    */

   'language' => '',

   /*
    * The region param used to finetune the geocoding process.
    *
    * More info: https://developers.google.com/maps/documentation/geocoding/intro#RegionCodes
    */
   'region' => '',

    /*
     * The bounds param used to finetune the geocoding process.
     *
     * More info: https://developers.google.com/maps/documentation/geocoding/intro#Viewports
     */
    'bounds' => '',

     /*
     * The country param used to limit results to a specific country.
     *
     * More info: https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingRequests
     */
    'country' => '',
];

Usage

Here's how you can use the Geocoder., (*12)

$client = new \GuzzleHttp\Client();

$geocoder = new Geocoder($client);

$geocoder->setApiKey(config('geocoder.key'));

$geocoder->setCountry(config('geocoder.country', 'US'));

$geocoder->getCoordinatesForAddress('Infinite Loop 1, Cupertino');

/*
  This function returns an array with keys
  "lat" =>  37.331741000000001
  "lng" => -122.0303329
  "accuracy" => "ROOFTOP"
  "formatted_address" => "1 Infinite Loop, Cupertino, CA 95014, USA",
  "viewport" => [
    "northeast" => [
      "lat" => 37.3330546802915,
      "lng" => -122.0294342197085
    ],
    "southwest" => [
      "lat" => 37.3303567197085,
      "lng" => -122.0321321802915
    ]
  ]
*/

You can get the result back in a specific language., (*13)

$geocoder->setLanguage('it');

$geocoder->getCoordinatesForAddress('Infinite Loop 1, Cupertino');

/*
  This function returns an array with keys
  "lat" => 37,3318598
  "lng" => -122,0302485
  "accuracy" => "ROOFTOP"
  "formatted_address" => "Infinite Loop 1, 1 Infinite Loop, Cupertino, CA 95014, Stati Uniti"
  ...
*/

You can also get all the results instead of the first one, (*14)

$geocoder
   ->getAllCoordinatesForAddress('Infinite Loop 1, Cupertino');

/*
  This function returns an array of results (array of array)
  ^ array:2 [
      0 => array:7 [
        "lat" => 37,3318115
        "lng" => -122,0301837
        "accuracy" => "ROOFTOP"
        "formatted_address" => "1 Infinite Loop, Cupertino, CA 95014, Stati Uniti"
        "viewport" => [
          "northeast" => [
            "lat" => 37.3330546802915,
            "lng" => -122.0294342197085
          ],
          "southwest" => [
            "lat" => 37.3303567197085,
            "lng" => -122.0321321802915
          ]
        ]
        "place_id" => "ChIJHTRqF7e1j4ARzZ_Fv8VA4Eo"
      ]
      1 => array:7 [
        "lat" => 37,3318598
        "lng" => -122,0302485
        "accuracy" => "ROOFTOP"
        "formatted_address" => "Infinite Loop 1, 1 Infinite Loop, Cupertino, CA 95014, Stati Uniti"
        "viewport" => [
          "northeast" => [
            "lat" => 37.333046180291
            "lng" => -122.02883961971
          ],
          "southwest" => [
            "lat" => 37.330348219708
            "lng" => -122.03153758029
          ]
        ]
        "place_id" => "ChIJAf9D3La1j4ARuwKZtGjgMXw"
      ]
    ]
*/

This is how you can reverse geocode coordinates to addresses., (*15)

$geocoder->getAddressForCoordinates(40.714224, -73.961452);

/*
  This function returns an array with keys
  "lat" => 40.7142205
  "lng" => -73.9612903
  "accuracy" => "ROOFTOP"
  "formatted_address" => "277 Bedford Ave, Brooklyn, NY 11211, USA",
  "viewport" => [
    "northeast" => [
      "lat" => 37.3330546802915,
      "lng" => -122.0294342197085
    ],
    "southwest" => [
      "lat" => 37.3303567197085,
      "lng" => -122.0321321802915
    ]
  ]
*/

You can also reverse geocode coordinates to all the related addresses., (*16)

$geocoder->getAllAddressesForCoordinates(40.714224, -73.961452);

/*
  This function returns an array of results (array of array)
  array:2 [
    0 => array: 7 [
      "lat" => 40.7142205
      "lng" => -73.9612903
      "accuracy" => "ROOFTOP"
      "formatted_address" => "277 Bedford Ave, Brooklyn, NY 11211, USA",
      "viewport" => [
        "northeast" => [
          "lat" => 37.3330546802915,
          "lng" => -122.0294342197085
        ],
        "southwest" => [
          "lat" => 37.3303567197085,
          "lng" => -122.0321321802915
        ]
      ]
    ],
    1 => array: 7 [
      "lat" => 40.7142015
      "lng" => -73.9613077
      "accuracy" => "ROOFTOP"
      "formatted_address" => "279 Bedford Ave, Brooklyn, NY 11211, USA",
      "viewport" => [
        "northeast" => [
          "lat" => 40.715557080291,
          "lng" => -73.959947169708
        ],
        "southwest" => [
          "lat" => 40.712859119708,
          "lng" => -73.962645130291
        ]
      ]
    ]
  ]
*/

If you are using the package with Laravel, you can simply call getCoordinatesForAddress., (*17)

Geocoder::getCoordinatesForAddress('Infinite Loop 1, Cupertino');

/*
  This function returns an array with keys
  "lat" =>  37.331741000000001
  "lng" => -122.0303329
  "accuracy" => "ROOFTOP"
  "formatted_address" => "1 Infinite Loop, Cupertino, CA 95014, Stati Uniti",
    "viewport" => [
    "northeast" => [
      "lat" => 37.3330546802915,
      "lng" => -122.0294342197085
    ],
    "southwest" => [
      "lat" => 37.3303567197085,
      "lng" => -122.0321321802915
    ]
  ]
*/

The accuracy key can contain these values: - ROOFTOP - RANGE_INTERPOLATED - GEOMETRIC_CENTER - APPROXIMATE, (*18)

You can read more information about these values on the Google Geocoding API Page, (*19)

When an address is not found accuracy and formatted_address will contain result_not_found, (*20)

Credits

License

The MIT License (MIT). Please see License File for more information., (*21)

The Versions

15/05 2018

dev-master

9999999-dev https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

15/05 2018

3.3.1

3.3.1.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

20/04 2018

3.3.0

3.3.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

30/03 2018

3.2.0

3.2.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

30/03 2018

dev-analysis-X05L4e

dev-analysis-X05L4e https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

22/02 2018

dev-analysis-q5DapY

dev-analysis-q5DapY https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

22/02 2018

3.1.1

3.1.1.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

22/02 2018

dev-analysis-zEKkMG

dev-analysis-zEKkMG https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

25/10 2017

3.1.0

3.1.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

24/10 2017

3.0.1

3.0.1.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

24/10 2017

3.0.0

3.0.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

15/11 2016

2.3.2

2.3.2.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

04/09 2016

2.3.1

2.3.1.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

01/09 2016

2.3.0

2.3.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

01/09 2016

dev-analysis-XpELpV

dev-analysis-XpELpV https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

20/08 2016

2.2.0

2.2.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

07/08 2016

2.1.3

2.1.3.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

04/07 2016

2.1.2

2.1.2.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

10/03 2016

2.1.1

2.1.1.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

24/07 2015

2.1.0

2.1.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

12/06 2015

2.0.0

2.0.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

23/05 2015

1.0.0

1.0.0.0 https://github.com/spatie/geocoder

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

01/10 2014

0.1.2

0.1.2.0

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode

01/05 2014

0.1.1

0.1.1.0

Geocoding addresses to coordinates

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel map location coordinate geocode