OSM Daten extrahieren

Durch die Wochennotiz Nr. 246 „Sirenen“ kam ein Kontakt zwischen Herr Hense (Stadt Bonn) und mir zustande. Nach einer kurzen E-Mail Kommunikation wurde ich zum OKLab-Bonn Meeting in das Bonner Stadthaus eingeladen. Dieses Treffen kam im Rahmen der Initiative CodeForBonn zustande. Ziel dieser Meetings ist die Anwendungsentwicklung auf Basis von offenen Daten für die Stadtgesellschaft.

In diesem Rahmen habe ich u.a. die Briefkastenkarte vorgestellt, welche auf großes Interesse gestoßen ist. Es gab außerdem die Idee, dass ein zuvor definierten Datenbestand aus OSM extrahiert und im OpenData Portal der Stadt Bonn bereit stellt wird. Beispielsweise könnte innerhalb einer Projektwoche an Schulen solch ein aufbereiteter Datensatz verwendet werden, ohne aus der Datenvielfalt die entsprechenden Daten zu filtern.

Mehr zum OpenData Portal der Stadt Bonn und CodeForBonn gibt es unter: http://opendata.bonn.de/blog/oklabbonn.

Meiner Meinung nach bieten sich zwei Möglichkeiten an, um die Daten im OpenData Portal bereitzustellen:

  1. Verwendung der Overpass API mittels Filtern
  2. Extrahieren aller Geodaten in Bonn aus dem OSM Planet File

Overpass API

Vorteil bei der Verwendung der Overpass API wäre, dass die Datenhaltung und somit auch die Aktualität der Daten in der Hand der OSM Community verbleibt, da bei dieser Variante lediglich eine URL (mit Filtern) in das OpenData Portal verlinkt werden würde.

Nachteil: Traffic und Auslastung liegt bei Overpass.

Planet File

Vorteil ist, dass nach dem Download die Verarbeitung auf den eigene Servern, sodass die Daten ggf. auch aufbereiten werden können. Für die Stadt Bonn ist ein Extrakt wesentlich sinnvoller, da ein Planet File ca. 40GB (komprimiert) groß ist.

How-to

Heute möchte ich gerne die zweite Möglichkeit als How-to abhandeln. Die Geofabrik stellt bereits Extrakte aus dem Planet File bereit, sodass hier Traffic und Zeit gespart werden kann. Um den gesamten Geodatenbestand aus OSM für die Stadt Bonn zu extrahieren, benötigten wir das kleinste Extrakt, welches verfügbar ist. In unserem Fall ist es der Regierungsbezirk Köln (123 MB – komprimiert).

Die OSM Daten können unter der URL herunter geladen werden:

Des Weiteren benötigen wir die Grenze der Stadt Bonn, sodass wir später die OSM Daten ausschneiden bzw. ermitteln können:

Anschließend muss aus der XML-Datei eine Polygon-Datei erstellt werden. Hierfür wurde eine modifizierte Version von osm2poly.pl verwendet (siehe Talk-de oder GitHub):

./osm2poly.pl bonn_administrative.osm > bonn_administrative.poly

Im Anschluss können wir anhand der Polygon-Datei unser benötigtes Gebiet ausschneiden:

 osmconvert koeln-regbez-latest.osm.pbf -B=bonn_administrative.poly -o=bonn.o5m

Zum Schluss können wir nun nach einem bestimmten Key-Value-Pair filtern und das Ergebnis wieder als XML speichern, sodass wir dieses weiter verarbeiten können:

osmfilter bonn.o5m --keep="amenity=post_box" --out-osm > bonn_post_box.osm

Zum Überprüfen kann man nun die Datei bonn_post_box.osm in JOSM laden und überprüfen, ob der räumliche Ausschnitt passt.

osm_extract_post_box_josm

Wenn über mehrere Key-Value-Pairs gefiltert wird, so können mehrere Geodatenbestände erstellt werden.

Ihr seid dran

Mich interessiert, ob die oben dargestellte Lösung Zuspruch findet oder ob es nicht noch bessere, einfachere Lösungsmöglichkeiten gibt.

Weiterlesen

Postcrossing

Dank Postcrossing schreibe und erhalte ich seit einiger Zeit viele verschiedene Postkarten aus allen Teilen der Welt. Letztlich habe ich eine Postkarte aus Leverkusen erhalten, mit dem Hinweis, dass ein Briefkasten fehlt. Diesen habe ich dann mit Hilfe der Notiz gemappt. Eine zusätzliche Kontrolle ist trotzdem gern gesehen.

 

Postcrossing?

Postcrossing ist ein von Paulo Magalhães im Jahr 2005 initiiertes Projekt, das ermöglicht, von Postcrossern aus aller Welt Postkarten zu erhalten. Für jede selbst versendete Karte bekommt man von einem anderen Postcrosser eine zurück.

Weiterlesen

How-to OSM-Map

How to create a simple map like the Briefkastenkarte? This questions comes up during the last OSM meeting in Bonn. For the Briefkastenkarte I use Leaflet with numerous plug-ins. Therefore I use Leaflet for this How-to too.

 

Frame

Let’s start with a HTML page:

 

Leaflet

Now, you see a blank web page. To get the map, you need to do the following steps, like described in Leaflet Quick Start Guide. Adding Leaflet JavaScript and Style to your page.

With line 15 we will initialize the map and set its view to Bonn (geographical coordinates 50.7344700 7.0987190, zoom level 15).

Next we will add a background layer to our map. In this case I use OSM Mapnik.

Leaflet How-to Nr. 1

 

Overpass API

To portray the OSM data, the Leaflet Overpass API plug-in is used. Refer the plug-in in the HEAD section of the HTML document.

Do not use the plug-ins directly from GitHub. For production please download the plug-ins.

In line 10 we define the request, which is sent to the Overpass API. For each node, a circle is created. The color (red / green) is based on the interpretation of the attribute collection_times. Finally, the layer must be added to the map.

Leaflet How-to Nr. 2

Leaflet How-to Nr. 3

 

Summary

* Refer Leaflet
* Create map with background layer
* Refer Leaflet Overpass API Plug-ins
* Create Overpass API query

You can download the demo from my GitHub account. In a second part, I will explain how to customize the portrayal of search results.

Weiterlesen

How-to OSM-Themenkarte

Beim letzten Bonner OSM Stammtisch wurde gefragt, wie man eine einfache Karte erstellt. Für die Briefkastenkarte nutze ich selbst Leaflet, mit zahlreichen Plug-ins. Daher verwende ich für dieses kurze How-to ebenfalls Leaflet.

 

Grundgerüst

Starten wir mit einer HTML-Seite, welchen folgenden Inhalt beinhaltet:

 

Leaflet

Im Web-Browser sehen wir somit nur eine weiße, leere Seite. Anschließend wird, wie in dem Leaflet Quick Start Guide beschrieben, das Leaflet JavaScript sowie der Style eingebunden. In Zeile 15 wird eine Karte erstellt. Der Mittelpunkt der Karte liegt in Bonn (Koordinaten 50.7344700 7.0987190, Zoomstufe 15).

Um eine Karte sehen zu können, muss noch ein OSM Layer als Hintergrund eingebunden werden.

Leaflet How-to Nr. 1

 

Overpass API

Zur Darstellung der OSM Daten wird das Leaflet Overpass API Plug-in verwendet. Das Plug-in wird in den HEAD-Bereich des HTML-Dokumentes eingefügt.

Für den produktiven Einsatz des Leaflet Overpass API Plug-ins empfehle ich den Download der JavaScript-Datei.

In Zeile 10 definieren wir die Anfrage, welche an die Overpass API gesendet wird. Für jeden Node wird ein Kreis erstellt. Die Farbe (Rot / Grün) richtet sich nach der Auswertung des Attributes collection_times. Zuletzt muss der Layer zur Karte hinzugefügt werden.

Leaflet How-to Nr. 2

Leaflet How-to Nr. 3

 

Zusammenfassung

* Einbinden von Leaflet
* Erstellen der Karte mit zusätzlicher Hintergrundkarte
* Einbinden des Leaflet Overpass API Plug-ins
* Erstellen der Suchanfrage zur Overpass API

Das gesamte Beispiel könnte ihr von meinem GitHub Account herunterladen. In einem weiteren Teil werde ich erläutern, wie man die Darstellung der Suchergebnisse den eigenen Vorstellungen anpassen kann.

Weiterlesen

Das kann die Briefkastenkarte

Briefkasten Sternstraße 85, 53111 BonnDie Briefkastenkarte basiert auf unterschiedlichen Frame- works, darunter Leaflet und Bootstrap. Die Daten kommen aus OpenStreetMap und werden über die Overpass API angefragt. Alles in allem ein gutes Zusammenspiel. Und was kann die Briefkastenkarte nun?

 

Briefkästen und Poststellen

Die Briefkastenkarte stellt derzeit Briefkästen und Post- stellen dar. Der Nutzer erhält sofort einen Überblick über Briefkästen mit ohne ohne Leerungszeiten, da diese in zwei unterschiedlichen Farben dargestellt werden. Enthält ein Briefkasten eine Leerungszeit über das Attribut collection_times, so wird dieser mit einem grünen Symbol dargestellt. Enthält ein Briefkasten keine Leerungszeit, so wird dieser mit einem roten Symbol in der Karte dargestellt. Analog zum Briefkasten funktioniert auch die Darstellung mit den Poststellen, jedoch wird hier das Attribut opening_hours ausgewertet.

 

Wo ist der nächste Briefkasten?

Der Nutzer kann auch von unterwegs auf die Briefkastenkarte zugreifen. Dabei besteht die Möglichkeit, den Standort mit GPS zu ermitteln. War die Standortbestimmung erfolgreich, zentriert sich die Karte. Umgesetzt wurde die Standortbestimmung mit einem Plug-in für Leaflet.

Alternativ kann die Eingabemaske (rechts oben) zur Suche nach einer Adresse, POI, o. ä . genutzt werden. Die Suche erfolgt hierbei über Nominatim.

 

Lesezeichen?

Der Kartenausschnitt der Briefkastenkarte liegt standardmäßig in Bonn. Über einen sogenannten Permalink kann der aktuelle Kartenausschnitt als Lesezeichen abgespeichert oder an Freunde und Bekannte weiter gegeben werden.

 

Profi?

Über Details anzeigen gelangt der Nutzer zu OpenStreetMap. Dort sind weitere Informationen über den Briefkasten bzw. die Poststelle zu finden. Wurde das Attribut collection_times:lastcheck im Format YYYY-MM-DD (nach ISO 8601:2004) angegeben, so wird dieses ausgewertet. Dem Nutzer wird die letzte Änderung dann z.B. mit Zuletzt vor 20 Tagen überprüft. ausgegeben. Die Attribute lastcheck bzw. last_checked sollen in Zukunft ebenfalls mit ausgewertet werden.

Weiterlesen

Briefkasten gesucht?

Während des Mappings von Hausnummern und Pollern ist mir regelmäßig aufgefallen, das Briefkästen zwar gemappt sind, Leerungszeiten und Betreiber dagegen meistens fehlen. Während des FOSSGIS Hacking Events im Linuxhotel, Anfang des Jahres, ist dann die Idee der Briefkastenkarte entstanden. Die Briefkastenkarte ist eine Themenkarte auf Basis von OpenStreetMap, mit dem Ziel, die Briefkästen (ggf. in Zukunft auch Poststellen sowie Packstationen) in einer einfach zu handhabenden Seite darzustellen.

Bereits vor einigen Jahres gab es die Bemühungen, eine Karte bereitzustellen, in der Briefkästen mit Leerungszeiten sowie Briefkästen ohne Betreiberinformationen dargestellt wurden. Damals noch unter der URL http://post.openstreetmap.de erreichbar, wurden auch Telefonzellen und Briefmarkenautomaten dargestellt.

Was hat sich in den letzten Jahren getan? Meiner Meinung nach nicht viel. Es sind zwar noch einige Blog Einträge im Netz zu finden, darunter

jedoch gibt es die besagten Dienste nicht mehr.

Weiterlesen