Skip to content

Latest commit

 

History

History
53 lines (33 loc) · 1.68 KB

PHP-Geocoder.md

File metadata and controls

53 lines (33 loc) · 1.68 KB

This document shows how to query the OpenCage geocoder using William Durand's Geocoder-PHP library.

To get tests passing we had to:

  • Install PHP (php-cli package on Ubuntu)
  • Install Composer (https://getcomposer.org/download/)
  • Install php-curl, php-xml and php-mbstring
  • Run composer install and composer install --dev
  • Run cp phpunit.xml.dist phpunit.xml and add your OpenCage API key (to get a free trial key register on the OpenCage site)
  • Run composer test

Example Reverse

#!/usr/bin/env php
<?php

require __DIR__ . '/vendor/autoload.php';

use Http\Adapter\Guzzle6\Client as GuzzleAdapter;
use Geocoder\Query\ReverseQuery;

$adapter  = new GuzzleAdapter();
$provider = new \Geocoder\Provider\OpenCage\OpenCage($adapter, 'YOUR-OPENCAGE-API-KEY');
$geocoder = new \Geocoder\StatefulGeocoder($provider, 'en');

$results = $geocoder->reverseQuery(ReverseQuery::fromCoordinates(37.4856225, -122.1468803));

echo $results->first()->getStreetName() . "\n";

Example Forward

#!/usr/bin/env php
<?php

require __DIR__ . '/vendor/autoload.php';

use Http\Adapter\Guzzle6\Client as GuzzleAdapter;
use Geocoder\Query\GeocodeQuery;

$adapter  = new GuzzleAdapter();
$provider = new \Geocoder\Provider\OpenCage\OpenCage($adapter, 'YOUR-OPENCAGE-API-KEY');
$geocoder = new \Geocoder\StatefulGeocoder($provider, 'en');

$results = $geocoder->geocodeQuery(GeocodeQuery::create('1 Hacker Way, Menlo Park, 94025'));

$coords = $results->first()->getCoordinates();

echo json_encode([ 'lat' => $coords->getLatitude(), 'lon' => $coords->getLongitude() ]) . "\n";