Im Umfeld von OpenStreetMap existieren eine Reihe von Diensten und APIs. Einer dieser Dienste ist Nominatim. Dabei handelt es sich um einen Geocoding-Dienst auf Basis der OpenStreetMap-Daten. Mithilfe der API kann anhand einer Koordinate in Form von Latitude und Longitude, eine Adresse ermittelt werden. Ein Beispielaufruf könnte wie folgt aussehen:
GET https://nominatim.openstreetmap.org/reverse?lat=53.49567958129127&lon=13.302898406982424&format=json
Gewöhnungsbedürftig an diesem Aufruf ist der Parameter format, über welchen das Format des Response definiert wird. Im Sinne einer sinnvollen REST-API, hätte dies besser über den Header-Parameter Accept gelöst werden sollen. Als Ergebnis erhält der Response die ermittelte Adresse:
{ "place_id": 239463758, "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright", "osm_type": "way", "osm_id": 626862936, "lat": "53.4957878878448", "lon": "13.3026220240811", "display_name": "Weinbergsweg, Burg Stargard, Stargarder Land, Mecklenburgische Seenplatte, Mecklenburg-Vorpommern, 17094, Deutschland", "address": { "road": "Weinbergsweg", "town": "Burg Stargard", "county": "Stargarder Land", "state": "Mecklenburg-Vorpommern", "postcode": "17094", "country": "Deutschland", "country_code": "de" }, "boundingbox": [ "53.4949976", "53.4960744", "13.3023076", "13.3027343" ] }
Neben der Geocoding-Funktionalität enthält der Dienst eine Reihe weiterer Funktionen, welche ihn zu einer Art Suchmaschine für OpenStreetMap-Daten machen. Die offizielle Projektseite des Dienstes ist unter nominatim.org zu finden. Der Quelltext des Dienstes ist auf GitHub zu finden. Das Projekt ist unter der GPL2 lizenziert und damit freie Software.