Nominatim

Open Source search based on OpenStreetMap data

4,244 stars Python #geocoding#openstreetmap#osm
RAW Doc

Nominatim

Nominatim (from the Latin, 'by name') is a tool to search OpenStreetMap data
by name and address (geocoding) and to generate synthetic addresses of
OSM points (reverse geocoding). An instance with up-to-date data can be found
at https://nominatim.openstreetmap.org. Nominatim is also used as one of the
sources for the Search box on the OpenStreetMap home page.

Documentation

The documentation of the latest development version is in the
docs/ subdirectory. A HTML version can be found at
https://nominatim.org/release-docs/develop/ .

Installation

The latest stable release can be downloaded from https://nominatim.org.
There you can also find installation instructions for the release, as well as an extensive Troubleshooting/FAQ section.

Detailed installation instructions for current master
can be found at nominatim.org as well.

A quick summary of the necessary steps:

  1. Clone this git repository and download the country grid

    text
    git clone https://github.com/osm-search/Nominatim.git
     wget -O Nominatim/data/country_osm_grid.sql.gz https://nominatim.org/data/country_grid.sql.gz
  2. Create a Python virtualenv and install the packages:

    text
    python3 -m venv nominatim-venv
     ./nominatim-venv/bin/pip install packaging/nominatim-{api,db}
  3. Create a project directory, get OSM data and import:

    text
    mkdir nominatim-project
     cd nominatim-project
     ../nominatim-venv/bin/nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
  4. Start the webserver:

    text
    ./nominatim-venv/bin/pip install uvicorn falcon
     ../nominatim-venv/bin/nominatim serve

License

The Python source code is available under a GPL license version 3 or later.
The Lua configuration files for osm2pgsql are released under the
Apache License, Version 2.0. All other files are under a GPLv2 license.

Contributing

Contributions, bug reports and pull requests are welcome. When reporting a
bug, please use one of the
issue templates
and make sure to provide all the information requested. If you are not
sure if you have really found a bug, please ask for help in the forums
first (see 'Questions' below).

For details on contributing, have a look at the
contribution guide.

Questions and help

If you have questions about search results and the OpenStreetMap data
used in the search, use the OSM Forum.

For questions, community help and discussions around the software and
your own installation of Nominatim, use the
Github discussions forum.