Disy Tech-Blog

Let’s talk about Geocoding!

Let’s talk about Geocoding!

Nominatim und Oracle Geocoder

27.11.2015 | Markus May

80% aller Daten haben einen Raumbezug. Aber nur bei wenigen Daten ist dieser explizit, d.h. in Koordinatenform, vorhanden. Geocoding ist eine Brücke und für Disy eine wichtige Grundtechnologie um Informationen auch raumbezogen analysieren zu können.

Unter Geocoding versteht man einen Prozess, mit dem einem – durch eine i.d.R. postalische Adresse beschriebenen – Datensatz, geografische Koordinaten zugewiesen werden. Als Adresskodierung, auch inverses Geocoding, wird der umgekehrte Weg bezeichnet, also die Zuweisung einer Adresse zu einem mit Koordinaten versehenen Datensatz.

Geocoding bildet die Basis für eine Vielzahl von Anwendungen und Einsatzbereichen. Dazu gehören Adresssuchen, so wie in Google Maps, Adressvervollständigungen, Routinganwendungen und Analysen aus dem Bereich Geomarketing.

Aus der Vielzahl von Geocoding-Tools stechen mit Nominatim und dem Oracle Geocoder zwei besonders robuste und weit verbreitete Umsetzungen heraus, die wir im Folgenden näher betrachten.

Nominatim

Bei Nominatim handelt es sich um ein Web-Tool, das auf Basis von OpenStreetMap-Daten Geocoding ermöglicht. Im Hintergrund von Nominatim arbeitet eine PostgreSQL-Datenbank (mit PostGIS Erweiterung), die mit verarbeiteten OpenStreetMap-Daten befüllt ist.

Über einen Webserver können durch ein php-Interface Daten angefragt werden. Dabei ermöglicht es Nominatim auch, die Vielzahl der in den OSM-Daten erfassten Metadaten in Anfragen einzubeziehen. So ist u.a. auch die Suche nach allen Standorten oder Adressen bestimmter Gebäudetypen wie z.B. Bürogebäude oder Schulen möglich.

Da Nominatim aus modularen Komponenten besteht, ist es mit einfachen Mitteln möglich einen eigenen Geocoding-Server aufzusetzen. Da alle Komponenten unter freier Lizenz stehen, ist es möglich unabhängig, frei und flexibel zu agieren. Durch die Verwendung von partiellen OSM-Extrakten lässt sich die Anwendung gut auf die jeweiligen Anforderungen zuschneiden. So lassen sich für Anwendungen mit räumlich begrenztem Einsatzbereich, wie z.B. das Bundesland Baden-Württemberg, nur die benötigten Daten in die Nominatim-Datenbank einlesen.

Die Qualität des Geocoding von Nominatim hängt wesentlich von der Qualität der OSM-Daten ab. Die Informationsdichte von OSM-Daten ist vor allem in städtischen Bereichen sehr hoch, so dass sehr gute Codierungsergebnisse erzielt werden können. Abstriche müssen im ländlichen Bereich gemacht werden. Eine Schwachstelle von Nominatim ist, dass unvollständige oder inkorrekte Anfragedaten nicht von dem Tool ergänzt bzw. korrigiert werden. Nominatim führt also keine echt unscharfe Suche (fuzzy search) durch.

Oracle Geocoder

Der Oracle Geocoder ist Bestandteil der Option Spatial and Graph, welche eine Enterprise-Lizenz voraussetzt. Technisch handelt es sich um eine Geocoding, Reverse Geocoding und Routing Engine.

Der Oracle Geocoder liefert dabei nur ein leeres Schema für die Referenzdaten und die Geocoding-Algorithmen. Die unabdingbaren Referenzdaten müssen vom Anwender durch eine selbst implementierte Funktion in die Datenbank eingespielt werden. Mögliche Datensätze sind OSM oder Daten von Nokia (HERE Maps, Beispiel [pdf]).

Während die grundlegenden Funktionalitäten mit denen von Nominatim vergleichbar sind, bietet der Oracle Geocoder zwei inhaltliche Besonderheiten. Zum einen kann durch den sogenannten Match Vector die Genauigkeit von Geocodierungen beziffert werden. Zum anderen bietet der Oracle Geocoder die Möglichkeit Adressen zu korrigieren und zu vervollständigen.

Anfragen an den Oracle Geocoder können über verschiedene Schnittstellen, wie PL/SQL, JAVA-Api oder als XML-Api über einen Webservice, gestellt werden.

Fazit

Nominatim bietet eine kostengünstige und leichtgewichtige Lösung im Bereich Geocoding, während der Oracle Geocoder eine Aussage über die Qualität der gefundenen Ergebnisse ermöglicht und Adressen korrigieren kann.

Weiterführende Links:

Das Titlebild heißt …been there und wurde von Pix Spotting unter CC-BY-ND 2.0 veröffentlicht.