Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stephangeorg/geocoder-arcgis
Promises based JavaScript wrapper for the ESRI ArcGIS geocoder service.
https://github.com/stephangeorg/geocoder-arcgis
arcgis arcgis-geocoder geocode geocoder
Last synced: about 2 months ago
JSON representation
Promises based JavaScript wrapper for the ESRI ArcGIS geocoder service.
- Host: GitHub
- URL: https://github.com/stephangeorg/geocoder-arcgis
- Owner: StephanGeorg
- Created: 2016-02-14T12:29:20.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-05-11T11:52:56.000Z (over 5 years ago)
- Last Synced: 2024-10-09T20:01:27.330Z (3 months ago)
- Topics: arcgis, arcgis-geocoder, geocode, geocoder
- Language: JavaScript
- Homepage:
- Size: 113 KB
- Stars: 8
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GeocoderArcGIS [![npm version](https://badge.fury.io/js/geocoder-arcgis.svg)](https://badge.fury.io/js/geocoder-arcgis)
A promises based JavaScript wrapper for the [ArcGIS](https://developers.arcgis.com/features/geocoding/) Geocoder API.
It uses fetch-everywhere to use in- Node
- Browser
- React-native## Installation
Installing using npm:
npm i geocoder-arcgis -S
## Usage
### Initialization
```javascript
const GeocoderArcGIS = require('geocoder-arcgis');const geocoder = new GeocoderArcGIS({
client_id: 'YOUR CLIENT ID', // optional, see below
client_secret: 'YOUR CLIENT SECRET' // optional, see below
});
```The constructor function also takes an optional configuration object:
* client_id: id for OAuth to use with "geocodeAddresses" or "forStorage" option. See [reference](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-free-vs-paid.htm)
* client_secret: secret for OAuth to use with "geocodeAddresses" or "forStorage" option. See [reference](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-free-vs-paid.htm)
* endpoint: custom ArcGIS endpoint### Geocode (findAddressCandidates)
```javascript
geocoder.findAddressCandidates('380 New York Street, Redlands, CA 92373',{})
.then((result) =>{
console.log(result);
})
.catch(console.log);
```You can pass a [SingleLine string or an object](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm#ESRI_SECTION1_699C8961EDD845CAB84A46409D9E9105) to the geocoder.
Optional parameters:
* you can pass all [request parameters](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm#ESRI_SECTION1_699C8961EDD845CAB84A46409D9E9105)### Reverse geocode (reverseGeocode)
```javascript
geocoder.reverse('51.484463,-0.195405',{ // longitude,latitude
maxLocations: 10,
distance: 100
}).then((result) => {
console.log(result);
});
```Optional parameters:
* you can pass all [request parameters](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-reverse-geocode.htm#ESRI_SECTION1_ABD1AD449DF54FFEB9527A606341714C)### Suggest (suggest)
```javascript
geocoder.suggest('Glogauer Straße, Berlin',{})
.then((result) => {
console.log(result);
})
.catch(console.log);
```Optional parameters:
* you can pass all [request parameters](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-suggest.htm#ESRI_SECTION1_606D93C721874B16844B9AB9CA8083FF)### geocodeAddresses
```javascript
geocoder.geocodeAddresses([
"380 New York St., Redlands, CA, 92373",
{
"Address": "1 World Way",
"Neighborhood": "",
"City": "Los Angeles",
"Subregion": "",
"Region": "CA"
}
],{})
.then((result){
console.log(result);
})
.catch(console.log);
```You can pass an array of attributes to the geocoder. All required fields will be added/formatted automatically. If you don't pass in OBJECTIDs for each address, this library will create them for you. You can pass a [SingleLine string or an object](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm#ESRI_SECTION1_699C8961EDD845CAB84A46409D9E9105) to the geocoder.
Optional parameters:
* you can pass all [request parameters](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-geocode-addresses.htm#ESRI_SECTION1_2F67482E18324994B54C9E93A81AA99D)### Geocode (find) - [deprecated](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm)
```javascript
geocoder.geocode('Berlin',{})
.then((response) => {
console.log(response);
})
.catch(console.log);
```### Response
All methods return a promise.
## See Also
* [geoservices-js](https://github.com/Esri/geoservices-js/blob/master/docs/Geocoding.md) provides another client for the ArcGIS geocoder, using a callback interface instead of promises.