Skip to content

A simple node module to handle nominatim searches

License

Notifications You must be signed in to change notification settings

demsking/nominatim-client

Repository files navigation

Nominatim Client

A simple client to handle geocoding and reverse geocoding via OpenStreetMap (OSM). It attempts to adhere to the Nominatim Usage Policy.

npm Build status Test coverage Buy me a beer

Install

npm install nominatim-client

Usage

const nominatim = require('nominatim-client');
const client = nominatim.createClient({
  useragent: "MyApp",             // The name of your application
  referer: 'http://example.com',  // The referer link
});

Search

const query = {
  q: '1 boulevard Anatole France Belfort',
  addressdetails: '1'
};

nominatim.search(query).then((result) => console.log(result));

Output:

[
  {
    "place_id": 273995170,
    "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
    "osm_type": "way",
    "osm_id": 929173018,
    "boundingbox": [
      "47.6405466",
      "47.640965",
      "6.8419814",
      "6.8480751"
    ],
    "lat": "47.6407423",
    "lon": "6.844936",
    "display_name": "Boulevard Anatole France, Le Mont Sud, Belfort, Territoire-de-Belfort, Bourgogne-Franche-Comté, Metropolitan France, 90000, France",
    "class": "highway",
    "type": "primary",
    "importance": 0.5199999999999999,
    "address": {
      "road": "Boulevard Anatole France",
      "suburb": "Le Mont Sud",
      "city": "Belfort",
      "municipality": "Belfort",
      "county": "Territoire-de-Belfort",
      "state": "Bourgogne-Franche-Comté",
      "country": "France",
      "postcode": "90000",
      "country_code": "fr"
    }
  }
]

Reverse

const query = {
  lat: 47.6407423,
  lon: 6.844936
};

client.reverse(query).then((result) => console.log(result));

Output:

{
  "place_id": 119321832,
  "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
  "osm_type": "way",
  "osm_id": 79763493,
  "lat": "47.64105015",
  "lon": "6.845205480320034",
  "display_name": "C, 8A, Boulevard Anatole France, Barres Le Mont, Belfort, Territoire-de-Belfort, Bourgogne-Franche-Comté, Metropolitan France, 90000, France",
  "address": {
    "building": "C",
    "house_number": "8A",
    "road": "Boulevard Anatole France",
    "suburb": "Barres Le Mont",
    "city": "Belfort",
    "municipality": "Belfort",
    "county": "Territoire-de-Belfort",
    "state": "Bourgogne-Franche-Comté",
    "country": "France",
    "postcode": "90000",
    "country_code": "fr"
  },
  "boundingbox": [
    "47.6409593",
    "47.6411156",
    "6.8449412",
    "6.8454734"
  ]
}

Versioning

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

See SemVer.org for more details.

License

Under the MIT license. See LICENSE file for more details.