Skip to content

DenisCarriere/geocoder-geojson

Repository files navigation

Build Status Circle CI Coverage Status npm version MIT licensed

Geocoding results according to the GeoJSON specification.

Install

$ npm install --save geocoder-geojson

Install globaly to access geocode via your command prompt.

$ npm install -g geocoder-geojson
$ geocode --version
$ geocode --help

Quickstart

import geocoder from 'geocoder-geojson'

geocoder.google('Ottawa, ON')
  .then(geojson => console.log(geojson))

Supports

Features

Name Coverage Restrictions
google Global Free & API Key - RateLimit 2500/day
googleReverse Global Free & API Key - RateLimit 2500/day
mapbox Global API Key
mapboxReverse Global API Key
bing Global API Key
wikidata Global Free

CLI

$ geocode --provider bing "Ottawa ON"
$ geocode -p wikidata --nearest [-75.7,45.4] Ottawa
$ geocode -p google --limit 3 "Ottawa ON"

Using jq to filter JSON data

$ geocode -p wikidata --nearest [-75.7,45.4] Ottawa | jq .features[0].id
"Q1930"

Roadmap

API

mapbox

Mapbox Provider

https://www.mapbox.com/api-documentation/#geocoding

Parameters

  • address string Location for your search
  • options [MapboxOptions] Mapbox Options
    • options.access_token [string] Access token or environment variable MAPBOX_ACCESS_TOKEN
    • options.mode [string] Mode mapbox.places or mapbox.places-permanent (optional, default 'mapbox.places')
    • options.country [string] ISO 3166 alpha 2 country codes, separated by commas
    • options.proximity [LngLat] Location around which to bias results, given as longitude,latitude
    • options.types [Array<string>] Filter results by one or more type.
    • options.autocomplete [boolean] Whether or not to return autocomplete results. (optional, default true)
    • options.bbox [BBox] Bounding box within which to limit results, given as minX,minY,maxX,maxY
    • options.limit [number] Limit the number of results returned. (optional, default 5)

Examples

const geojson = await geocoder.mapbox('Ottawa, ON')

Returns Promise<Points> GeoJSON Point FeatureCollection

mapboxReverse

Mapbox Provider (Reverse)

https://www.mapbox.com/api-documentation/#geocoding

Parameters

  • lnglat LngLat Longitude & Latitude [x, y]
  • options [MapboxOptions] Mapbox Options
    • options.access_token [string] Access token or environment variable MAPBOX_ACCESS_TOKEN
    • options.mode [string] Mode mapbox.places or mapbox.places-permanent (optional, default 'mapbox.places')
    • options.country [string] ISO 3166 alpha 2 country codes, separated by commas
    • options.proximity [LngLat] Location around which to bias results, given as longitude,latitude
    • options.types [Array<string>] Filter results by one or more type.
    • options.autocomplete [boolean] Whether or not to return autocomplete results. (optional, default true)
    • options.bbox [BBox] Bounding box within which to limit results, given as minX,minY,maxX,maxY
    • options.limit [number] Limit the number of results returned. (optional, default 1)

Examples

const geojson = await geocoder.mapbox('Ottawa, ON')

Returns Promise<Points> GeoJSON Point FeatureCollection

google

Google Provider

https://developers.google.com/maps/documentation/geocoding

Parameters

  • address string Location for your search
  • options [GoogleOptions] Google Options
    • options.language [string] The language in which to return results (optional, default en)
    • options.short [boolean] Address components have long or short results (optional, default false)

Examples

const geojson = await geocoder.google('Ottawa, ON')

Returns Promise<Points> GeoJSON Point FeatureCollection

googleReverse

Google Provider (Reverse)

https://developers.google.com/maps/documentation/geocoding

Parameters

  • lnglat LngLat Longitude & Latitude [x, y]
  • options [GoogleOptions] Google Options
    • options.language [string] The language in which to return results (optional, default en)
    • options.short [boolean] Address components have long or short results (optional, default false)

Examples

const geojson = await geocoder.googleReverse([-75.1, 45.1])

Returns Promise<Points> GeoJSON Point FeatureCollection

bing

Bing Provider

https://msdn.microsoft.com/en-us/library/ff701714.aspx

Parameters

  • address string Location for your search
  • options [BingOptions] Bing Options
    • options.key [string] API key or environment variable BING_API_KEY
    • options.maxResults [string] Specifies the maximum number of locations to return in the response.

Examples

const geojson = await geocoder.bing('Ottawa, ON')

Returns Promise<Points> GeoJSON Point FeatureCollection

wikidata

Wikidata Provider

https://query.wikidata.org/

Parameters

  • address string Location for your search
  • options [Options] Wikidata Options
    • options.nearest [LngLat] Nearest location from a given LngLat
    • options.radius [number] Maximum radius from nearest LngLat
    • options.languages [Array<string>] Exact match on a list of languages
    • options.subclasses [Array<string>] Filter results by Wikidata subclasses

Examples

const geojson = await geocoder.wikidata('Ottawa')

Returns Promise<Points> GeoJSON Point FeatureCollection

request

Generic GET function to normalize all of the requests

Parameters

  • url string URL
  • geojsonParser function Customized function to generate a GeoJSON Point FeatureCollection
  • params [Object](default {}) Query String
  • options [Object](default utils.Options) Options used for HTTP request & GeoJSON Parser function

Returns Promise<Points> Results in GeoJSON FeatureCollection Points