Overpass API auf der FOSSGIS Konferenz

head_rapperswill

Für die kommende FOSSGIS im Juni 2013 habe ich noch zu viele Ideen für Vorträge. Ich würde Euch daher unter den nachfolgenden Vorschlägen um ein Votum bitten, was ich anmelde.

Es gibt dabei auf der FOSSGIS die beiden Vortragsformen „Vortrag“ und „Workshop“; für einen „Lightning Talk“ sind die Ideen alle zu umfangreich. „Vortrag“ ist ein normaler 30- bis 45-minütiger Vortrag. Ein „Workshop“ umfasst mehr Zeit, ist aber für die Teilnehmer gebührenpflichtig; die Gebühren dienen dem FOSSGIS zur Finanzierung der Konferenz. Ich werde die Materialien aus dem Workshop daher dann nachher auch in anderer Form zugänglich machen, so dass auch Teilnehmer mit schmalen Bugdet davon profitieren. Die Vortragsfolien wird es ohnehin online geben.

Syntax und Semantik der Overpass API

Die Overpass API ist eine über das Web erreichbare Datenbank, die den OSM- Datenbestand spiegelt. Sie bietet dabei schnellen Lesezugriff mit umfangreichen Abfragemöglichkeiten und ergänzt so die zentrale OSM-Datenbank, die auf Schreiboperationen ausgelegt ist.

Die Overpass API wird heute bereits für eine Vielzahl von Anwendungen, z.B. zur Qualitätssicherung, für in Echtzeit erzeugte Kartenoverlays, thematische Downloads oder auch zur Beschleunigung der Main API verwendet. Ihren Geschwindigkeitsvorteil erzielt die Overpass API durch eine optimierte Datenhaltung anstatt einer relationalen Datenbank.

In diesem Vortrag wird in die Abfragesprache systematisch eingeführt. Als Beispiele werden ein Kartenoverlay auf Basis von OpenLayers erstellt, es wird die spezielle Area-Syntax zur Generierung der Straßenliste einer Stadt verwendet, und es wird als Beispiel für eine mehrstufige Abfrage das Tool zur Erstellung von Bus- und Bahn-Linienbändern und -plänen vorgestellt.

Mobile Karten erstellen mit OSM, OpenLayers und Overpass API

Mit OpenStreetMap stehen nicht nur freie Daten zur Verfügung, sondern wegen der hervorragenden Community decken diese auch ein sehr breites thematisches Spektrum ab, und sie erreichen dabei eine Aktualität, die sich eher in Tagen und Stunden als Monaten und Jahren bemisst.

Mit der Kombination der freien Werkzeuge OpenLayers und der Overpass API lassen sich diese leicht in einer Karte für thematische Overlays visualisieren, die sowohl gleichermaßen auf dem Desktop wie auf mobilen Endgeräten funktioniert, aber trotzdem nicht mehr Infrastruktur als eine einfache HTML-Seite braucht. Dank Overpass API ist sie stets minutenaktuell und auch spontan im HTML-Code oder sogar zur Laufzeit konfigurierbar.

Anhand einer Beispielkarte werden die Möglichkeiten erläutert: Es wird gezeigt, wie durch ein durchdacht einfaches Bedienkonzept und Nutzung der Geolokalisierung eine Smartphone-freundliche Karte entsteht. Wir werden eigene Kategorien von Points of Interest spontan als Kartenoverlay hinzufügen. Und es wird gezeigt, wie durch Kombination von Tag-Verarbeitung auf dem Client und Rückgriff auf die Nominatim-API zu jedem POI automatisch eine Adresse ermittelt werden kann.

Änderungsverfolgung in OSM

Nachdem der OpenStreetMap-Community die Aufgabe, Daten zu erfassen, mit Bravour erfüllt hat, tritt zunehmend auch die Aufgabe der Datenpflege in den Vordergrund. Fehlerhafte oder veraltete Daten sind dabei mindestens so heikel wie fehlende Daten, denn sie untergraben das Vertrauen in die Qualität der Datenbank.

Dabei kann es für fehlerhafte Daten viele Ursachen geben: Weit häufiger als Vandalismus sind dies Bedienfehler von Neu-Mappern. Noch schwieriger zu finden sind Seiteneffekte anderer Edits wie beschädigte Relationen, nicht eindeutige oder irrtümlich gewählte Tags oder sogar unerwartete Nebenwirkungen der wenigen Methoden, bereits hochgeladene Änderungen rückgängig zu machen.

Wir geben einen Überblick, mit welchen Tools sich Änderungen visualisieren und verfolgen lassen, stellen Methoden zur Wiederherstellung alter Datenzustände vor und erläutern, wie sich auf Basis der Neuentwicklung „Augmented Diffs“ eigene, spezialisierte Tools entwickeln lassen.

Augmented Diffs in der Praxis

Der Wunsch in Frederik Ramms Vortrag zu „Augmented Diffs“ vom letzten Jahr ist seit dem Hack-Weekend in Karlsruhe im Oktober 2012 Wirklichkeit geworden: Die Augmented Diffs bieten zusätzlich zu den Diffs der Main API alle nötigen Informationen, um Änderungen geographisch verorten zu können oder auch einen Diff in der Zeit rückwärts anwenden zu können. Sie stellen damit ein sehr hilfreiches Werkzeug zur Änderungsverfolgung dar.

Leider sind die „Augmented Diffs“ aber auch in den Mühen der Ebene angekommen: Die potentiellen Anwendungen für Augmented Diffs sind so unterschiedlich, dass verschiedene Formate notwendig werden. Schon beim Löschen eines Elementes müssen zwei statt einem Satz Metadaten hinzugefügt werden. Die Geometrie eines Weges oder einer Relation kann sich ändern, ohne dass für diesen eine neue Versionsnummer vergeben wird. Beschränkt man den Augmented Diff geographisch, so können sogar Objekte ohne Versionsänderung im Augmented Diff als gelöscht markiert werden müssen. Insgesamt ergibt sich eine unerwartet komplexe Semantik von Änderungstypen.

Dazu kommen Probleme jenseits der Semantik: Einerseits sollen Relationen komplett aufgeführt werden, wenn sich ihre Geometrie ändert. Andererseits sorgt dies bei den doch häufigen Änderungen an Landesgrenzen für Dateigrößen, die nicht nur für andere Clients schwer beherrschbar sind, sondern auch erhebliche Kapazitäten des Server belegen. Sie sorgen zudem dafür, dass sich nur schwer Zeiträume von mehr als einigen Stunden überbrücken lassen.

Es wird als Ausweg ein Ausblick auf den zukünftigen Full-History-Modus der Overpass API gegeben: Damit können dann Augmented Diffs mit den auf den jeweiligen Anwendungszweck zugeschnittenen Inhalten generiert werden, so dass insbesondere längere Zeiträume für kleine Bounding Boxen schnell erstellt werden können, was wiederum die Änderungsverfolgung drastisch verbessert.

Ich werde realistischerweise höchstens einen Workshop plus einen Vortrag vorbereiten können. Bitte bennent ein Wuschthema für einen Workshop und ein Wunschthema für einen Vortrag. Wie üblich werde ich nicht strikt auszählen, sondern den besten Argumenten folgen wie z.B. inhaltliche Überschneidungen zu ähnlichen Vorträgen zu vermeiden.

[poll id=“3″]

Roland

Roland mappt unter Roland.olbricht und hat seinen Schwerpunkt auf die Entwicklung der OSM-Infrastruktur gelegt. Beruflich ist er am Fraunhofer-Institut SCAI in St. Augustin bei Bonn als Software-Entwickler (ohne Bezug zu OSM) tätig.

Kategorie: FOSSGIS

  1. Pingback: Cachepodcast #65 | Cachepodcast