geocoder-php/arcgis-online-provider

Geocoder ArcGIS Online adapter

4.4.0 2022-07-30 12:09 UTC

This package is auto-updated.

Last update: 2024-10-04 11:12:53 UTC


README

Build Status Latest Stable Version Total Downloads Monthly Downloads Code Coverage Quality Score Software License

This is the ArcGIS provider from the PHP Geocoder. This is a READ ONLY repository. See the main repo for information and documentation.

ArcGIS provides 2 APIs for geocoding addresses:

  • geocodeAddresses
  • findAddressCandidates
    • This API states:

    Applications are contractually prohibited from storing the results of geocoding transactions unless they make the request by passing the forStorage parameter with a value of true and the token parameter with a valid ArcGIS Online token.

Since a token is required for the geocodeAddresses API, the geocodeQuery method checks the token property:

  • If token is NULL, it uses the findAddressCandidates API.
  • If token is not NULL, it uses the geocodeAddresses API.

Usage

Without a token

$httpClient = new \Http\Discovery\Psr18Client();

$provider = new \Geocoder\Provider\ArcGISList\ArcGISList($httpClient);

// Uses the `findAddressCandidates` operation. Result storage is prohibited.
$result = $geocoder->geocodeQuery(GeocodeQuery::create('Buckingham Palace, London'));

With a token

$httpClient = new \Http\Discovery\Psr18Client();

// Your token is required.
$provider = \Geocoder\Provider\ArcGISList\ArcGISList::token($httpClient, 'your-token');

// Uses the `geocodeAddresses` operation. Result storage is permitted.
$result = $geocoder->geocodeQuery(GeocodeQuery::create('Buckingham Palace, London'));

Install

composer require geocoder-php/arcgis-online-provider

Note

It is possible to specify a sourceCountry to restrict results to this specific country thus reducing request time (note that this doesn't work on reverse geocoding).

Contribute

Contributions are very welcome! Send a pull request to the main repository or report any issues you find on the issue tracker.