Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
nominatim [2026/03/29 20:34] jango [WSL] |
nominatim [2026/04/04 11:24] (aktuell) admin [Search] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | Nominatim ist ein Open-Source Geocoder für [[OpenStreetMap]]-Daten (OSM). Das System kann Orts-, Straßen- und Adressangaben in Koordinaten umwandeln (Geocoding) und umgekehrt aus Koordinaten eine möglichst passende Adresse ableiten (Reverse Geocoding). Nominatim indiziert OSM Daten für Suchanfragen. Dabei werden Namen, Adressen, administrative Grenzen und weitere OSM-Merkmale verarbeitet, | ||
| + | |||
| + | Nominatim wird sowohl als öffentliche Web-API betrieben als auch als Software zur Selbstinstallation angeboten. | ||
| + | |||
| Siehe [[OpenStreetMap]] | Siehe [[OpenStreetMap]] | ||
| Demo [[https:// | Demo [[https:// | ||
| + | |||
| + | =====API-Endpunkte===== | ||
| + | |||
| + | Die Web-API von Nominatim stellt unter anderem folgende Endpunkte bereit: /search, /reverse, /lookup, /status und /details. Der Endpunkt /search dient zur textuellen Suche, /reverse zur Adressauflösung aus Koordinaten und /lookup zur Abfrage anhand von OSM-Objekt-IDs. | ||
| + | |||
| + | ====Search==== | ||
| + | |||
| + | Mit /search können freie oder strukturierte Suchanfragen gestellt werden. Nominatim unterstützt sowohl Freitext als auch strukturierte Parameter wie Straße, Stadt oder Postleitzahl. Zusätzlich können bestimmte Begriffe als sogenannte special phrases interpretiert werden, um nach Objekttypen zu suchen. | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | https:// | ||
| + | |||
| + | <code python> | ||
| + | import requests | ||
| + | |||
| + | def search_place(query: | ||
| + | url = " | ||
| + | params = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | headers = { | ||
| + | " | ||
| + | } | ||
| + | |||
| + | response = requests.get(url, | ||
| + | response.raise_for_status() | ||
| + | return response.json() | ||
| + | |||
| + | |||
| + | results = search_place(" | ||
| + | |||
| + | for place in results: | ||
| + | print(place[" | ||
| + | print(place[" | ||
| + | </ | ||
| + | ====Reverse==== | ||
| + | |||
| + | Mit /reverse wird zu einem Koordinatenpaar ein passender OSM-Ort bzw. eine Adresse gesucht. | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | https:// | ||
| + | |||
| + | <code python> | ||
| + | import requests | ||
| + | |||
| + | def reverse_geocode(lat: | ||
| + | url = " | ||
| + | params = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | headers = { | ||
| + | " | ||
| + | } | ||
| + | |||
| + | response = requests.get(url, | ||
| + | response.raise_for_status() | ||
| + | return response.json() | ||
| + | |||
| + | |||
| + | result = reverse_geocode(48.20849, | ||
| + | print(result[" | ||
| + | </ | ||
| + | ====Lookup==== | ||
| + | |||
| + | Mit /lookup lassen sich Detailinformationen zu bekannten OSM-Objekten abrufen, wenn deren Objekt-ID vorliegt. | ||
| =====Setup===== | =====Setup===== | ||