Geocode forward and reverse.
Autocomplete addresses.
Available both in the browser and node.
Using npm:
$ npm install simple-multi-geocoder
Using yarn:
$ yarn add simple-multi-geocoder
Using pnpm:
$ pnpm add simple-multi-geocoder
Once the package has been installed, import the library using either import or require:
import { geocode , autocomplete } from "simple-multi-geocoder" ;
geocode.forward(provider, options)
import { geocode } from "simple-multi-geocoder" ;
const API_KEY = ... // get it from secure environment
const address = "Rue du Belvédère 23, 1050 Ixelles, Belgique"
const response = await geocode . forward (
"here" ,
{ apiKey : API_KEY , query : address , country : "BE" , language : "fr" , limit : 1 }
)
console . log ( response )
/*
{
formattedAddress: "Rue du Belvédère 23, 1050 Ixelles, Belgique",
latitude: 50.82679,
longitude: 4.37359,
components: {
streetNumber: "23",
streetName: "Rue du Belvédère",
zipcode: "1050",
city: "Ixelles",
county: "Bruxelles",
state: "Bruxelles",
district: "Flagey - Malibran",
country: "Belgique",
countryCode: "BE",
},
extra: {
id: "here:af:streetsection:NEk2q66IKlrCDNB4JhoMOC:CggIBCCc4o62ARABGgIyMw",
confidence: 1,
},
}
*/
Parameter
Description
provider (required )
Provider (google , here , mapbox ) token
options (required )
Options object (see below )
Parameter
Type
Description
apiKey (required )
string
Provider access token
query (required )
string
Complete address in string format (e.g. Rue du Belvédère 23, 1050 Ixelles, Belgique )
language
string
Language of the returned result (IETF BCP 47 format )
country
string
Limit the search to a specific country (ISO_3166-1_alpha-2 format )
limit
number
Maximum number of results to be returned (default: 1 ) (not supported by Google )
raw
boolean
Return the raw result
params
object
Params object specific to the provider (see below )
You can check the official API documentation from providers to see which options you can pass the geocoder
We always return an array of object with the following fields
Field
Type
Description
formattedAddress
string
The complete formatted address
latitude
number
The latitude of the result
longitude
number
The longitude of the result
components
object
The address components (see below )
extra
object
An object with additional informations (see below )
Field
Type
Description
country
string
The country where is located the result
countryCode
string
The country code of the result (ISO 3166-1 alpha-2 format)
state
string
The state where is located the result
region
string
The region where is located the result
city
string
The city where is located the result
zipCode
string
The postal code of the city
streetName
string
The street name where is located the result
streetNumber
string
The street number where is located the result
extra
Field
Type
Description
id
string
The unique identifier of the result provided by the provider
bbox
object
The bounding box of the result
confidence
number
A number between 0 and 1 indicating how the result location correspond to our query
geocode.reverse(provider, options)
import { geocode } from "simple-multi-geocoder" ;
const API_KEY = ... // get it from secure environment
const address = "Rue du Belvédère 23, 1050 Ixelles, Belgique"
const coordinates = {
latitude : 50.82679 ,
longitude : 4.37359
}
const response = await geocode . reverse (
"here" ,
{ apiKey : API_KEY , coordinates : coordinates , country : "BE" , language : "fr" , limit : 1 }
)
console . log ( response )
/*
{
formattedAddress: "Rue du Belvédère 23, 1050 Ixelles, Belgique",
latitude: 50.82679,
longitude: 4.37359,
components: {
streetNumber: "23",
streetName: "Rue du Belvédère",
zipcode: "1050",
city: "Ixelles",
county: "Bruxelles",
state: "Bruxelles",
district: "Flagey - Malibran",
country: "Belgique",
countryCode: "BE",
},
extra: {
id: "here:af:streetsection:NEk2q66IKlrCDNB4JhoMOC:CggIBCCc4o62ARABGgIyMw",
confidence: 1,
},
}
*/
Parameter
Description
provider (required )
Provider (google , here , mapbox ) token
options (required )
Options object (see below )
Parameter
Type
Description
apiKey (required )
string
Provider access token
coordinates (required )
object
coordinates of the point to reverse geocode
language
string
Language of the returned result (IETF BCP 47 format )
country
string
Limit the search to a specific country (ISO_3166-1_alpha-2 format )
limit
number
Maximum number of results to be returned (default: 1 ) (not supported by Google )
raw
boolean
Return the raw result
params
object
Params object specific to the provider (see below )
Field
Type
Description
latitude
number
Latitude of the point
longitude
number
Longitude of the point
You can check the official API documentation from providers to see which options you can pass the geocoder
We always return an array of object with the following fields
Field
Type
Description
formattedAddress
string
The complete formatted address
latitude
number
The latitude of the result
longitude
number
The longitude of the result
components
object
The address components (see below )
extra
object
An object with additional informations (see below )
Field
Type
Description
country
string
The country where is located the result
countryCode
string
The country code of the result (ISO 3166-1 alpha-2 format)
state
string
The state where is located the result
region
string
The region where is located the result
city
string
The city where is located the result
zipCode
string
The postal code of the city
streetName
string
The street name where is located the result
streetNumber
string
The street number where is located the result
extra
Field
Type
Description
id
string
The unique identifier of the result provided by the provider
bbox
object
The bounding box of the result
confidence
number
A number between 0 and 1 indicating how the result location correspond to our query
autocomplete(provider, options)
import { autocomplete } from "simple-multi-geocoder" ;
const API_KEY = ... // get it from secure environment
const address = "Rue du Belvédère 23, 1050 Ixelles, Belgique"
const response = await autocomplete (
"here" ,
{ apiKey : API_KEY , query : address , country : "BE" , language : "fr" , limit : 1 }
)
console . log ( response )
/*
{
formattedAddress: "Rue du Belvédère 23",
components: {
streetNumber: "23",
streetName: "Rue du Belvédère",
zipcode: "1050",
city: "Ixelles",
county: "Bruxelles",
state: "Bruxelles",
district: "Flagey - Malibran",
country: "Belgique",
countryCode: "BE",
},
extra: {
id: "here:af:streetsection:NEk2q66IKlrCDNB4JhoMOC:CggIBCCc4o62ARABGgIyMw"
},
}
*/
Parameter
Description
provider (required )
Provider (google , here , mapbox ) token
options (required )
Options object (see below )
Parameter
Type
Description
apiKey (required )
string
Provider access token
query (required )
string
Partial address in string format (e.g. Rue du Belvédère 23 )
language
string
Language of the returned result (IETF BCP 47 format )
country
string
Limit the search to a specific country (ISO_3166-1_alpha-2 format )
limit
number
Maximum number of results to be returned (default: 1 ) (not supported by Google )
raw
boolean
Return the raw result
params
object
Params object specific to the provider (see below )
You can check the official API documentation from providers to see which options you can pass the geocoder
We always return an array of object with the following fields
Field
Type
Description
formattedAddress
string
The complete formatted address
components (optional )
object
The address components (see below )
extra
object
An object with additional informations (see below )
Field
Type
Description
country
string
The country where is located the result
countryCode
string
The country code of the result (ISO 3166-1 alpha-2 format)
state
string
The state where is located the result
region
string
The region where is located the result
city
string
The city where is located the result
zipCode
string
The postal code of the city
streetName
string
The street name where is located the result
streetNumber
string
The street number where is located the result
extra
Field
Type
Description
id
string
The unique identifier of the result provided by the provider