Skip to content

loursbourg/php-nominatim

This branch is 18 commits behind maxhelias/php-nominatim:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7bd5fd7 Â· Aug 27, 2018

History

68 Commits
Mar 26, 2018
May 26, 2018
Aug 27, 2018
May 24, 2018
Mar 26, 2018
Mar 26, 2018
Jul 9, 2018
Feb 4, 2017
May 24, 2018
Feb 4, 2017
Mar 26, 2018
Oct 10, 2017
Oct 10, 2017
Oct 10, 2017
Oct 15, 2016
Oct 10, 2017
May 26, 2018
May 24, 2018
May 24, 2018
Jan 7, 2017

Repository files navigation

Wrapper Nominatim API

Latest Stable Version Build Status Scrutinizer Code Quality Total Downloads Join the chat at https://gitter.im/maxhelias/php-nominatim MIT licensed

SensioLabsInsight

A simple interface to OSM Nominatim.

See Nominatim documentation for info on the service.

See the PhpDoc of the project.

Installation

Install the package through composer:

composer require maxh/php-nominatim

Make sure, that you include the composer autoloader somewhere in your codebase.

Basic usage

Create a new instance of Nominatim.

use maxh\Nominatim\Nominatim;

$url = "http://nominatim.openstreetmap.org/";
$nominatim = new Nominatim($url);

Searching by query :

$search = $nominatim->newSearch();
$search->query('HelloWorld');

$nominatim->find($search);

Or break it down by address :

$search = $nominatim->newSearch()
            ->country('France')
            ->city('Bayonne')
            ->postalCode('64100')
            ->polygon('geojson')    //or 'kml', 'svg' and 'text'
            ->addressDetails();

$result = $nominatim->find($search);

Or do a reverse query :

$reverse = $nominatim->newReverse()
            ->latlon(43.4843941, -1.4960842);

$result = $nominatim->find($reverse);

Or do a lookup query :

$lookup = $nominatim->newLookup()
            ->format('xml')
            ->osmIds('R146656,W104393803,N240109189')
            ->nameDetails(true);

$result = $nominatim->find($lookup);

By default, the output format of the request is json and the wrapper return a array of results. It can be also xml, but the wrapper return a object SimpleXMLElement

How to override request header ?

There are two possibilities :

  1. By Nominatim instance, for all request :
$nominatim = new Nominatim($url, [
    'verify' => false
]);
  1. By find method, for a request :
$result = $nominatim->find($lookup, [
    'verify' => false
]);

How to customize HTTP client configuration ?

You can inject your own HTTP client with your specific configuration. For instance, you can edit user-agent and timeout for all your requests

<?php
use maxh\Nominatim\Nominatim;
use GuzzleHttp\Client;

$url = "http://nominatim.openstreetmap.org/";
$defaultHeader = [
    'verify' => false,
    'headers', array('User-Agent' => 'api_client')
];

$client = new Client([
    'base_uri'           => $url,
    'timeout'            => 30,
    'connection_timeout' => 5,
]);

$nominatim = new Nominatim($url, $defaultHeader, $client);

Note

This projet was inpired by the Opendi/nominatim project with more features like reverse query, support of the xml format, customize HTTP client and more on which i work.

Recall Usage Policy Nominatim

If you use the service : http://nominatim.openstreetmap.org/, please see Nominatim usage policy.

About

📡 Wrapper for Nominatim API

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%