Geocoding
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 | no |
Oscar (demo) | C++ | ? | ? |
addok (demo) | Python | no, only BAN(O) | ? |
Mimirsbrunn | Rust | no | ? |
Gisgraphy (demo) | Java | ? | ? |
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)
- Twofishes - by Foursquare - A coarse forward & reverse geocoder in scala (abandoned, its website is down)
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 | 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
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.
- Geocoding.ai provides hosted geocoding APIs powered by Nominatim, offers full-text search and reverse geocoding.
- Geokeo.com provides forward and reverse geocoding. with spell correction and more. 2500 daily free api limit
See also
References
This article is issued from Openstreetmap. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.