2017 © Pedro Peláez
 

library simple-geocoder

Simple and minimalistic Geocoder interface with some basic implementations

image

jeroen/simple-geocoder

Simple and minimalistic Geocoder interface with some basic implementations

  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 56 % Grown

The README.md

Simple Geocoder

GitHub Workflow Status Latest Stable Version Download count, (*1)

PHP 7.0+ library providing a simple and minimalistic Geocoder interface with some basic implementations., (*2)

interface Geocoder {
    /**
     * Returns null when no result is found or when an error occurs.
     * @return LatLongValue|null
     */
    public function geocode( string $address );
}

Geocoders using real geocoding services over HTTP:, (*3)

  • GeoNamesGeocoder
  • GoogleGeocoder
  • NomatimGeocoder

Adapters:, (*4)

Trivial implementations (great for testing):, (*5)

  • InMemoryGeocoder
  • NullGeocoder
  • StubGeocoder

Decorators:, (*6)

  • CoordinateFriendlyGeocoder

This library is based on code extracted from the Maps extension for MediaWiki., (*7)

Installation

To use the Simple Geocoder library in your project, simply add a dependency on jeroen/simple-geocoder to your project's composer.json file. Here is a minimal example of a composer.json file that just defines a dependency on Simple Geocoder 1.x:, (*8)

{
    "require": {
        "jeroen/simple-geocoder": "~1.0"
    }
}

Development

For development you need to have Docker and Docker-compose installed. Local PHP and Composer are not needed., (*9)

sudo apt-get install docker docker-compose

Running Composer

To pull in the project dependencies via Composer, run:, (*10)

make composer install

You can run other Composer commands via make run, but at present this does not support argument flags. If you need to execute such a command, you can do so in this format:, (*11)

docker run --rm --interactive --tty --volume $PWD:/app -w /app\
 --volume ~/.composer:/composer --user $(id -u):$(id -g) composer composer install -vvv

Running the CI checks

To run all CI checks, which includes PHPUnit tests, PHPCS style checks and coverage tag validation, run:, (*12)

make

Running the tests

To run just the PHPUnit tests run, (*13)

make test

To run only a subset of PHPUnit tests or otherwise pass flags to PHPUnit, run, (*14)

docker-compose run --rm app ./vendor/bin/phpunit --filter SomeClassNameOrFilter

Release notes

1.3.1 (2020-08-19)

  • Updated attribution

1.3.0 (2019-01-18)

  • Installation with FileFetcher 6.x is now allowed

1.2.0 (2018-07-10)

  • Added GeocoderPhpAdapter that allows using the popular PHP Geocoder library
  • Installation with DataValues Geo 4.x is now allowed

1.1.0 (2018-03-20)

  • Installation with DataValues Geo 3.x is now allowed

1.0.0 (2017-11-02)

Initial release as standalone component with, (*15)

  • FileFetcher based geocoders: GeoNamesGeocoder, GoogleGeocoder, NomatimGeocoder
  • Trivial implementations: InMemoryGeocoder, NullGeocoder, StubGeocoder
  • Decorators: CoordinateFriendlyGeocoder

The Versions