Entwicklung eines Rundrouten-Planers für Fahrräder durch unseren Praktikanten Hannes Blitza

So sieht die fertige Anwendung aus. Mit nur drei Klicks (Angabe von Startpunkt, Richtung und Weglänge) lässt sich eine fertige Rundroute erstellen.

 

Im Rahmen des Masterstudiums der Geographie an der Uni Bonn ist es im 3. Semester vorgesehen praktische Erfahrungen je nach Interesse in der Wirtschaft oder Wissenschaft zu sammeln. Da ich sowohl im Studium und im Rahmen einer studentischen Hilfskraft Stelle als auch bei privaten Projekten bereits viel mit Open Source GIS Software und Tools gearbeitet hatte, erschien mir die Möglichkeit die Kenntnisse im Kontext eines Praktikums bei der Firma terrestris zu vertiefen und zu erweitern als äußerst vielversprechend. terrestris war mir zuvor durch sein Engagement in der Open Source GIS Community bereits als aktives Unternehmen in Bonn aufgefallen.

Die ersten Wochen waren durch die anstehende FOSSGIS Konferenz in Bonn bestimmt, auf der Anwender und Entwickler von Freier und Open Source GIS Software aus dem deutschsprachigen Raum zusammenkommen, um sich über neueste Entwicklungen und Herausforderungen auszutauschen. Aus den Reihen von terrestris wurden Workshops  und Vorträge zu verschiedenen Themen aus dem Bereich Webmapping und Geodatenmanagement vorgestellt. Da ich mich zu Beginn des Praktikums zunächst in GeoServer und OGC Standards einarbeitete, konnte ich parallel bei der Gestaltung einiger Workshops mithelfen.

Während der Konferenz hatte ich, neben meinen Tätigkeiten als Konferenzhelfer, die Möglichkeit, interessante Vorträge zu hören, die mir überdies auch Inspirationen für mein späteres Praktikumsprojekt gaben. In den Pausen und bei den Social-Events gab es zudem reichlich Gelegenheit, sich mit anderen GIS‘lern aus Anwendung und Forschung auszutauschen.

Nachdem ich mich in die Grundlagen und gängigen Entwicklertools eingearbeitet hatte, begann ich mein Praktikumsprojekt, für das ich in den folgenden Monaten freie Geodaten aus unterschiedlichen Quellen analysierte, prozessierte und mit Hilfe einer Vielzahl an Open Source Tools und Bibliotheken letzten Endes in einem interaktiven WebGIS zusammenführte. Auf die Idee einen Rundrouten-Planer für Fahrräder zu entwickeln kam ich nach einigen Umwegen (z.B. „Büdchentour-Planer“) zusammen mit meinen Praktikumsbetreuer Daniel Koch.

Der Anfangsgedanke war zunächst einen Kartenstil zu entwickeln, der sich speziell an die Bedürfnisse von Radfahrern richtet. Hierzu wurde im ersten Schritt ein OpenStreetMap-Datenextrakt von Nordrhein-Westfalen in eine PostgreSQL Datenbank importiert. Im zweiten Schritt wurden die Daten mit Hilfe von GeoServer verteilt, zunächst als Vektor-Tiles, für das designen des Kartenstils mit dem Maputnik-Editor, und anschließend als WMS-Dienst, für die Einbindung ins WebGIS.

Eine Herausforderung beim Verwenden vieler verschiedener Tools stellt stets die Interoperabilität dar. Diese ist im GIS-Bereich bei OGC-konformer Software dank vieler etablierter Standards nur selten ein Problem. Allerdings kam es beispielsweise beim Umwandeln des Mapbox GL Stiformats, das Maputnik verwendet, ins SLD-Format (OGC-Standard und von GeoServer verwendet) zu einigen Problemen.

Nachdem der Kartenstil fertig erstellt war, habe ich mich mit verschiedenen Open Source Routing Services sowie bereits vorhandenen Radroutenplanern beschäftigt und dabei zwei zentrale Defizite festgestellt, aus denen letzten Endes die Ideen für das WebGIS entsprangen. Im Zusammenspiel von OpenLayers, Turf.js und der Openrouteservice API ist es mit der Anwendung möglich, schnell und einfach eine Rundroute zu erstellen und diese anschließend im GPX-Format herunterzuladen. Zudem wird für die Berechnung des Höhenprofils das Digitale Geländemodell (DGM1) NRW herangezogen, das über eine Höhengenauigkeit von +/- 20 cm verfügt und somit um ein vielfaches genauer als das standardmäßige Modell (SRMT-1). Die Berechnung der Höheninformation läuft über actinia, einem neu entwickelten Cloud Geoprocessing Dienst der Partnerfirma mundialis

Hier geht es zur Anwendung: https://github.com/hblitza/bike_round_trip

Mit dem Maputnik-Editor wurde ein Kartenstil designt, der spezielle Bedürfnisse von Radfahrern berücksichtigt.

Architekturskizze der Anwendung. Die Geodaten werden vom GeoServer verteilt, von MapProxy gecached und als WMS in das WebGIS eingebunden. Für die Berechnung der Route wird die Openrouteservice API angesprochen, für die Berechnung der Höhendaten die actinia API.

 

Während zu Beginn des Praktikums das Programmieren mit ES6 (moderner JavaScript Standard) und vor allem React.js noch recht holprig verlief, gewann ich durch das tägliche learning by doing und viel Unterstützung durch die anderen Entwickler rasch an Sicherheit. Die WebGIS-Bibliotheken OpenLayers und Turf.js bieten zahlreiche Möglichkeiten, Geodaten im Browser zu verarbeiten und zu visualisieren. Als besonders positiv empfand ich die zahlreichen gut dokumentierten Beispiele sowie die Möglichkeit über Foren und die Entwicklerplattform GitHub direkten Kontakt zu anderen Anwendern oder gar Entwicklern aufzunehmen. Eventuelle Defizite von Open Source Tools kann man somit direkt ansprechen und ggf. Verbesserungsvorschläge einbringen.

Bei den täglichen Morgenbesprechungen und Foren gewann ich nach und nach einen Einblick in die alltägliche Arbeitswelt und Unternehmenskultur von terrestris und der Partnerfirma mundialis. Nachdem ich mein Projekt den anderen Mitarbeitern vorstellte, ergaben sich viele weitere Ideen, u.a. die Miteinbeziehung von actinia, einem Cloud Geoprocessing Dienst.

Alles in allem hat mir die Zeit bei terrestris sehr gut gefallen, was nicht nur an der Nutzung innovativer und moderner Open Source Tools und einer meiner Einschätzung nach professionellen Arbeitsweise liegt sondern natürlich auch an der entspannten Atmosphäre, die ich u.a. auch beim Sommerfest „Bratwurst, Bier & GIS“ erleben durfte. Ich bedanke mich bei allen Mitarbeitern von terrestris und mundialis für die nette Praktikumszeit und freue mich darauf euch im Rahmen meiner Masterarbeit noch öfters besuchen zu dürfen!