Geocoding
Jump to navigation
Jump to search
Geocoding is the process of taking input text, such as an address or the name of a place, and returning a latitude/longitude location on the Earth's surface for that place. Reverse geocoding, on the other hand, is the opposite: returning a list of places near a given latitude/longitude point.[1]
Open source geocoders
Name | Languages | OSM addresses |
Street intersections |
---|---|---|---|
Nominatim (demo) | Python, PHP | yes | no |
Photon (demo) | Java | yes | no |
Pelias (demo) | JavaScript | yes | yes |
Oscar (demo) | C++ | ? | ? |
addok (demo) | Python | no, only BAN(O) | ? |
Gisgraphy (demo) | Java | ? | ? |
Mimirsbrunn(unmaintained) | Rust | no | ? |
Gazetteer(unmaintained) | Java | yes | no |
osmnames-sphinxsearch(unmaintained) | Python | yes | no |
The following software only provides reverse geocoding:
- JRG: small reverse geocoder working on a postprocessed osm2pgsql database.
The following geocoding software is also open source but not available in a dedicated repository:
- osmgeoref – a small geocoding engine with low resource requirements (proof of concept)
Comparison of HTTP APIs
Geocoder | Fulltext Geocoding | Fields Geocoding | Autocomplete | Filter | Bias | Reverse geocoding | Batch | Normalisation | Gazetteer | Linkage | Autocompletion Linkage | Engine | Data source |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nominatim | yes | no | no | countrycodes, bbox | N/A | yes | no | Nominatim | Strict | Postgres | OSM | ||
Gisgraphy | yes | yes | yes | Radius, Country | lat/lon, Disable Fuzzy | yes | no | Token | EdgeNGram | Solr | OpenAddresses, OSM | ||
Photon | yes | no | yes | bbox, OSM Tags | lat/lon | yes | no | Nominatim | EdgeNGram | ElasticSearch | OSM | ||
Pelias | yes | yes | yes | Placetype, Country, Bbox, Radius, admin_boundary, Data source | Proximity | yes | no | libpostal, pelias/parser | Who’s On First | Token + EdgeNGram | EdgeNGram | ElasticSearch | OSM, OpenAddresses, Who's on First, Geonames. Supports custom data. |
addok | yes | no | yes | postal_code | lat/lon | address only | yes | regex | N/A | Phonetization or Trigram | EdgeNGram | Redis | BAN, BANO(OSM) |
Mimirsbrunn | no | no | yes | Dataset, Type, Zone | lat/lon | yes | no | regex | Cosmogony | Trigram | EdgeNGram | ElasticSearch | OpenAddresses, OSM, BAN |
Online geocoding services
These options are available as services you can call:
Non-commercial, ToS limited
- Nominatim is deployed on OpenStreetMap servers, and powers the search on the front page as well as offering an API.
- Photon hosted by Komoot.de
- GeoCheck hosted by IdeesLibres.org - searches across Nominatim OSM, Google, Photon OSM, ideeslibres.org BANO, IGN, Etalab BANO
- OSMNames maintained by MapTiler and HSR - provides basic search in place names with autocomplete for demo purposes. The project mainly aims to deliver gazetteer data from OSM.
- LocalArea maintained by CrimeFlare - searches OpenStreetMap and display ethical corporations
- BBBike tagname search offers fulltext search in more than 175 mio name, notes, description, comment, fixme, subject, title, wikipedia and URLs tags in OpenStreetMap by words, sub-strings, phrases, regular expressions, or best match.
Commercial
- OpenCage hosted by OpenCage GmbH - searches across OpenStreetMap, geonames, geoplanet among other sources.
- LocationIQ searches across OSM, OA, Geonames, and WoF, among other sources
- Osmocoder hosted by 123map.de, able to do batch geocoding, so far for area of Germany, and in German language.
- Geocode Earth provide hosted geocoding APIs powered by the open-source Pelias Geocoder. They offer autocomplete, reverse & full-text search across OSM, OpenAddresses, Geonames and Who's on First. Run by the former Mapzen Search team.
- WhatIsWhere Free, powerful map based search. Supports multiple conditions applied at the same time, saving/loading search projects, export to CSV, etc.
- NetToolKit provides affordable geocoding, autocomplete/search, and map tile services.
- Geoapify offers direct and reverse geocoding, as well as autocomplete. They support single and batch requests. The APIs can be tested with Playground.
- Geocoding API Forward & Reverse Geocoding based on OpenStreetMap data with low latency served by a global cdn.
- SmartMaps powered by YellowMap AG - Worldwide Forward & Reverse Geocoding, Routing, Matrix Routing and Autocomplete based on OpenStreetMap data.
- BigDataCloud provides free client-side reverse geocoding API which utilises data from OpenStreetMap (OSM) project and various other open public sources. They deliver administrative/non-administrative boundaries-based results.
- Geokeo.com provides forward and reverse geocoding. with spell correction and more. 2500 daily free api limit
- GraphHopper Directions API: offers various Routing APIs and a Geocoding API where the provider can be selected and is based on photon, Nominatim and Gisgraphy.
- Stadia Maps Geocoding API