Ein Arbeitsblatt für Selbstlerner, Studierende, Schülerinnen und Schüler sowie Lehrpersonen auf Sekundarstufe II (Sekundarschulen und Gymnasien).

Autor Fabian Germann, MSE Seminar GIS Location Intelligence, Frühjahrsemester 2023

Einleitung

Für die maschinelle Verarbeitung von Geoinformationen werden meist Koordinaten verwendet. So kann ein Computer z.B. die Distanz zwischen zwei Punkten präzise berechnen. Wir Menschen hingegen können in der Regel mit Koordinaten wenig anfangen und bevorzugen eine menschenlesbare Darstellung wie Ortsbeschreibungen oder Adressen.

Unter Geokodieren (Englisch: geocoding) versteht man den Transformationsprozess von menschenlesbaren Namen in Koordinaten. Handelt es sich um postalische Adressen, spricht man von Adressdaten geokodieren.

Geokodierung kommt täglich zum Einsatz, z.B. dann, wenn du den Namen eines Restaurants im Navi eingibst. Darüber hinaus tritt Geokodierung häufig an der Schnittstelle zwischen Mensch und Maschine auf. Aus diesen Gründen gehört Geokodierung zu den wichtigsten Technologien bei der Verarbeitung von Geodaten.

Ziele

Die Ziele dieses Arbeitsblattes sind:

  • Du verstehst, wie die Geokodierung von Adressen grundsätzlich funktioniert.

  • Du kannst in QGIS einzelne Adressen mittels dem Geokoder Nominatim geokodieren.

  • Du kannst die wichtigsten Anwendungsfälle von Geokodierung aufzählen und du weisst, dass Geokodierung nicht immer die Lösung ist, obwohl es auf den ersten Blick so scheint.

  • Du kannst in QGIS mehrere Adressen in einer CSV-Datei mittels der Funktion Nominatim-Sammelgeokodierung geokodieren.

  • Du kannst in QGIS (GeoCoding Plugin) Koordinaten mittels «reverse geocoding» in Adressen transformieren.

Zeitplanung

Zeitaufwand: Diese Übung dauert ca. 30 Minuten.

Voraussetzungen

  • Software-/Hardware-Voraussetzungen: Als Software wird QGIS 3 (Version 3.20 oder neuer) vorausgesetzt, damit Nominatim nativ in QGIS verfügbar ist. Dieses Unterrichtsmaterial wurde mit der neusten herunterladbaren QGIS Version und mit dem neusten QGIS Long Term Release (LTR) getestet. QGIS läuft auf den gängigen Betriebssystemen Windows, MacOS und Linux.

  • Vorbereitungen: QGIS ist installiert. Weitere Instruktionen siehe unten.

  • Eingangskompetenzen: Es wird vorausgesetzt, dass Grundkenntnisse im Umgang mit einem Betriebssystem sowie Grundkenntnisse in QGIS 3 vorhanden sind.

Vorbereitungen

Daten: Adressliste (CSV-Datei) ist vorhanden. Die Datei kann auf der Webseite von OpenSchoolMaps unter Unterrichtsmaterialien heruntergeladen werden kann.

QGIS Plugins: QuickMapServices sowie GeoCoding (für «reverse geocoding» in Aufgabe 3)

Was ist Geokodieren?

Beim Geokodieren werden menschenlesbare Namen in geografische Koordinaten umgewandelt. Ein paar Beispiele für solche Namen sind:

  • Restaurant Alpenblick Meilen

  • Naturhistorisches Museum Bern

  • Genfergasse 14, 3011 Bern

  • ETH Zürich

  • Oberseestrasse 99 Rapperswil-Jona

Die oben aufgeführten Namen haben eines gemeinsam: Sie bezeichnen ein Objekt, das sich an einem bestimmten Standort befindet. Das Ziel des Geokodierens ist es, die Koordinaten dieser Objekte anhand der Namen zu ermitteln. Häufig handelt es sich bei den Namen um Adressen. Der Fokus dieses Arbeitsblatts und der Übungsaufgaben ist deshalb das Geokodieren von Adressen. Um Adressen auf einer Karte zu finden, wird eine enstprechende Software (Geocoder) benötigt.

Abbildung 1 visualisiert die Eingabe und Ausgabe eines Geocoders. Beispielsweise nimmt der Geocoder den Text "Genfergasse 14, 3011 Bern" und gibt die Koordinaten (Breiten- und Längengrad) dafür aus. Viele Geocoder bieten ebenfalls eine Umkehrfunktion an. Dabei bilden die Koordinaten die Eingabe und werden in die nächstgelegene Adresse transformiert.

swisscom addr to lat lon
Abbildung 1. Ein-/Ausgabe eines Geocoders für "Geocoding" bzw. "Reverse Geocoding"

Wie funktioniert ein Geocoder?

Die grundsätzliche Funktionsweise eines Geocoders lässt sich wie folgt zusammenfassen: In einer Datenbank sind verschiedene Informationen zu allen durchsuchbaren Orten gespeichert. Für jeden Ort sind ausserdem die Koordinaten bekannt. Algorithmen überführen dann die unstrukturierte Eingabe in ein strukturiertes Datenformat und suchen in der Datenbank nach passenden Orten.

Geocoder haben typischerweise zwei Eingabe-Optionen: Strukurierte und unstrukturierte Eingabe. Bei der strukturierten Eingabe sind für jedes Attribute, wie Strassen, Ort, ein eigener Parameter vorgesehen. Bei der unstrukturierten Eingabe muss man sich nicht an ein festes Schema halten. Statt "Genfergasse 14, 3011 Bern" kann man z.B. auch die Postleitzahl weglassen und nach "Genfergasse 14 Bern" suchen. Ausserdem sind verscheidene Schreibweisen, wie z. B. "Oberseestrasse 99" und "Oberseestr. 99" unterstützt. Grundsätzlich kann nicht immer garantiert werden, dass ein perfekt passender Ort gefunden wird. Deshalb gibt ein Geocoder häufig mehrere Orte aus, die nach der Relevanz absteigend sortiert sind.

Die konkrete Funktionsweise und der genaue Funktionsumfang des Geocoders sowie die Qualität der Resultate sind letztendlich vom verwendeten Geocoder abhängig. Es gibt viele verschiedene Geocoder. Sehr häufig wird das Geokodieren auch als Service angeboten. Dies macht Geokodierung einfach verfügbar und hat den Vorteil, dass man die Geodaten in der Datenbank nicht selbst pflegen muss. Zu den bekanntesten Services gehören beispielsweise:

Doch Geokodierung als Service hat auch Einschränkungn, die man beachten muss. Die Dienstleistungen haben z.B. häufig einschränkende Nutzungsbedingungen. Bei Nominatim ist beispielsweise nur eine Anfrage pro Sekunde möglich. Bei kommerziellen Services sollte man auf jeden Fall das Preismodell genauer betrachten.

Hinweis für Power User

Müssen häufig viele Adressen geokodiert werden (z. B. mehrere tausend pro Tag), lohnt es sich möglicherweise einen eigenen Geocoder zu betreiben. Die Open-Source-Geocoder bieten da den Vorteil, dass diese frei zugänglich sind und lokal installiert werden können.

Aufgabe 1 — Geokodieren mit Nominatim in QGIS

In dieser Aufgabe geht es darum, eine einzelne Adresse in QGIS zu geokodieren. Der Nominatim Geocoder ist in QGIS integriert. Dieser Dienst verwendet Daten von OpenStreetMap. In wenigen Schritten kannst du damit eine beliebige Eingabe geokodieren.

  1. Öffne QGIS und wähle Web > QuickMapServices > OSM > OSM Standard, um die Standardkarte von OSM einzufügen.

  2. Verwende das Textfeld in der Statusleiste, um Nominatim zu benützen. Die Eingabe muss mit einem > beginnen: z. B. > Restaurant Alpenblick Meilen

  3. Kann Nominatim alle Beispiele aus dem Abschnitt «Was ist geokodieren?» korrekt geokodieren? Verwende eigene Eingaben und versuche fehlerhafte Resultate zu erzeugen.

Verbesserung von Nominatim

Unter osm-place-search-logger.infs.ch können Resultate von Nominatim als korrekt gekennzeichnet werden. Diese Rückmeldung wird dann genutzt, um den Dienst weiter zu verbessern.

Für welche Anwendungsfälle eignet sich Geokodierung?

Der Hauptanwendungsfall von Geokodieren ist die Standortsuche von Objekten anhand deren Namen/Adressen. Diese geografische Suchfunktion kommt in zahlreichen spezifischen Anwendungsfällen zum Einsatz. Ein paar Beispiele davon sind:

  • Fahrtrouten optimieren

  • Adressen auf Karten visualisieren

  • Standort bezogenes Marketing

  • Erstellung von Geostatistiken

  • Argumented Reality Gaming

Doch nicht jedes Suchproblem lässt sich mit Geokodieren lösen. Möchte man z.B. nach allen italienischen Restaurants in Zürich suchen, ist ein Geocoder nicht geeignet. Bei solchen Suchen nach Typen von Ojekten erwartet man schliesslich mehrere treffende Resultate. Von einem Geocoder hingegen erwartet man das bestmögliche Resultat zur Eingabe.

Geokodieren ist besonders hilfreich, wenn es darum geht, eine unstrukturierte Texteingabe von Menschen zu verarbeiten. Liegen z. B. Adressen in einem strikten Schema vor, ist der direkte Abgleich mit den Adressdaten der Schweizerischen Post wohl möglich die bessere Lösung.

Aufgabe 2 — Adressliste in QGIS auf Karte visualisieren

In dieser Aufgabe verwendest du die Nominatim-Sammelgeokodierungs-Funktion, um mehrere Adressen in einer Datei zu geokodieren.

  1. Öffne QGIS und wähle Web > QuickMapServices > OSM > OSM Standard um die Standard-OSM-Karte eizufügen, sofern du dies nicht bereits getan hast.

  2. Ziehe die Datei address_list.csv mit der Maus in QGIS hinein.

  3. Suche im Fenster Verarbeitungswerkzeuge nach Nominatim und wähle Nominatim-Sammelgeokodierung aus.

    verarbeitungswerkzeuge in qgis
    Abbildung 2. Verarbeitungswerkzeuge in QGIS
  4. Wähle anschliessend als Eingabelayer address_list und als Adressfeld Address aus.

    nominatim sammelgeokodierung window
    Abbildung 3. Nominatim-Sammelgeokodierung
  5. Starte den Prozess. Überprüfe einzelne Adressen z. B. mit Google Maps. Kann Nominatim alle Adressen korrekt geokodieren?

Aufgabe 3 — «Reverse Geocoding» in QGIS

In dieser Aufgabe wirst du das GeoCoding-Plugin in QGIS verwenden, um mittels «reverse geocoding» die nächstgelegene Adresse eines beliebigen Punktes zu ermitteln.

  1. Öffne QGIS und wähle Web > QuickMapServices > OSM > OSM Standard um die Standard OSM Karte einzufügen, sofern du dies nicht bereits getan hast.

  2. Wähle Erweiterungen > GeoCoding > ReverseGeoCoding.

    reverse geocoding menu item
    Abbildung 4. Erweiterung GeoCoding
  3. Mit dem ausgewählten Werkzeug kannst du irgendwo auf die Karte klicken. Es wird dann ein Punkt mit der nächstgelegenen Adresse als Label erzeugt.

Batch Reverse Geocoding

Das Plugin MMQGIS unterstützt Reverse Geocoding für mehrere Koordinaten (Stapelverarbeitung).

Testfragen

Sind die folgenden Aussagen richtig oder falsch?

  1. Beim Geokodieren (Englisch: geocoding) werden Koordinaten in Adressen umgewandelt.

  2. Internetdienste für das Geokodieren bieten unter anderem den Vorteil, dass die Geodaten in der Datenbank nicht selbst aktualisiert werden müssen.

  3. Um sämtliche Campingplätze im Tessin zu suchen, ist ein Geocoder das richtige Suchinstrument.

  4. Beim Geokodieren einer Adresse kann es vorkommen, dass mehrere Orte bzw. deren Koordinaten als mögliche Resultate in Frage kommen.

  5. Beim Geokodieren muss die Eingabe einem strikten Schema entsprechen.

  6. Der in QGIS integrierte Geocoder Nominatim verwendet Daten von OpenStreetMap.

  7. Obwohl Nominatim ein open source Geocoder ist, kann dieser nicht lokal betrieben werden.

  8. Nominatim ist ein Internetdienst für das Geokodieren, der keine Nutzungslimiten hat. Damit können problemlos tausende Adressen innert wenigen Sekunden geokodiert werden.

Schlussfolgerung und Ausblick

Dieses Arbeitsblatt behandelt den Einstieg in das Thema Geokodieren von Adressen in QGIS. Du besitzt nun die nötigen Grundkenntnisse, um das Thema weiter zu vertiefen. Ausserdem kannst du in deinen zukünftigen GIS-Projekten einzelne sowie mehrere Adressen aus einer Datei geokodieren.

Weiterführende Quellen

Weiterführende Quellen sind:


Noch Fragen? Wende dich an die QGIS-Community!

CC0 (Public Domain) logo Frei verwendbar unter CC0 1.0