Nominatim
Nominatim | |
---|---|
Author: | osm-search/Nominatim/graphs/contributors GitHub |
Version: | 4.5.0 releases (2024-09-12) |
Website: | nominatim.org / UI: nominatim.openstreetmap.org |
Source code: | osm-search/Nominatim GitHub |
OSM search engine |
Nominatim (from the Latin, 'by name') is a tool to search OSM data by name and address (geocoding) and to generate synthetic addresses of OSM points (reverse geocoding). It can be found at nominatim.openstreetmap.org.
Nominatim is also used as one of the sources for the search box on the OpenStreetMap home page. Several companies provide hosted instances of Nominatim that you can query via an API; see section Alternatives below.
API/Usage instructions
The API documentation can be found at nominatim.org. This also contains hints how to formulate search queries with Nominatim.
Usage Policy
For the usage policy of nominatim.openstreetmap.org, please see Nominatim usage policy.
Source Code
Nominatim is based around the PostgreSQL import utility osm2pgsql using the alternative gazetteer output option. Indexing and search are performed using a combination of C, plpgsql and PHP. The source can be found here:
https://github.com/openstreetmap/Nominatim
Full installation instructions can be found in on the nominatim.org website.
Other resources
There is also a list of language mappings per country, some experimental address formats per country and a list of abbreviations.
Bugs / Error reporting
Please report bugs and problems in the Nominatim issue tracker on Github (there is also an archive of issues before 2018 originally reported on trac.openstreetmap.org).
When you report unexpected search results, please include the following in your bug report:
- the exact search term you were using
- links to the OSM objects you expect to find and, optionally, a link to the OSM object that was actually found
Alternatives / Third-party providers
For slightly larger requirements, you may be able to use one of the various third-party providers, though, of course, you will need to agree to their terms of service.
- Geoapify (uses Nominatim among others, provides a commercial access to Nominatim API)[1]
- Geocodify.com
- Geocoding API
- Geocoding.ai
- Geofabrik
- LocationIQ
- OpenCage Geocoder (uses Nominatim among others)[2]
- Maps.co Geocoding API
- Reverse Geocoder API (Easy to use reverse geocoder to get country by location, city by location or address by location with global OSM data)
You can also install your own instance of Nominatim.
See search engines for a complete list of OSM-based geocoding providers, including those who use different geocoding software than Nominatim.
API Client Libraries
Note: before adding any libraries here, you must make sure that it forces the user to set a custom user agent. It should also prominently point to the Nominatim usage policy.
Not endorsing the quality of these related projects, but consider using them as an alternative to writing your own. Please make sure you read the Nominatim usage policy before using these libraries. In particular, make sure you respect the limit of 1 request/s.
- C#: https://github.com/f1ana/Nominatim.API
- Python: https://geopy.readthedocs.io/en/stable/#nominatim
References
- ↑ Geoapify Geocoding API website, https://www.geoapify.com/geocoding-api/, retrieved on 27 September 2021
- ↑ Migrating from Nominatim, OpenCage website, https://opencagedata.com/guides/how-to-switch-from-nominatim, retrieved on 26 August 2021