Awesome
ArcGIS Online
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 oftrue
and thetoken
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
isNULL
, it uses thefindAddressCandidates
API. - If
token
is notNULL
, it uses thegeocodeAddresses
API.- If the
token
value is invalid or has expired, you will get an error. - Tokens have a maximum lifetime of 14 days.
- Instructions for generating an ArcGIS token
- If the
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.