Der diesjährige Google Summer of Code ist inzwischen erfolgreich zu Ende gegangen. Uns gibt das Gelegenheit für eine Zusammenfassung und einen genaueren Blick auf die einzelnen Projekte. Für OSM ist dies bereits die zehnte erfolgreiche Teilnahme. Vielen Dank daher an Google für die erneute Unterstützung, und an die Engineering Working Group für die Organisationsarbeit in diesem Jahr!
Der Google Summer of Code ist ein Programmierstipendium von Google, das studentische Entwickler mit Open-Source-Projekten zusammenbringt. Studierende können sich je nach ihren Interessen und Fähigkeiten bei den teilnehmenden Projekten bewerben. Diejenigen Studierenden, deren Bewerbung akzeptiert wird, erhalten von Google eine Finanzspritze, um einen Sommer lang an ihrem Programmierprojekt arbeiten zu können und wertvolle Erfahrungen bei der Arbeit an realen Aufgaben zu sammeln.
In diesem Jahr hatten wir 5 Projekte, allesamt mit sehr guten Studierenden. So konnten alle Projekte mit Erfolg abgeschlossen werden. Es gab auch noch zwei weitere Projekte mit OSM-Bezug, die von anderen Organisationen als der OSMF betreut wurden: Indoor-Support für Marble auf OSM-Basis und eine Plugin-Schnittstelle für die Darstellung von OSM-Daten in NASA Web WorldWind. Einen Wermutstropfen gab es aber auch: Google hatte uns sogar noch mehr Projektslots zugeteilt, für die wir auch Bewerbungen von zwei weiteren ausgezeichneten Studierenden hatten – daraus wurde aber aufgrund von Umständen außerhalb unserer Kontrolle leider nichts.
Da aber sicher nicht jeder die Arbeiten der Studierenden mitverfolgt hat, hier ein kleiner Überblick über die Ergebnisse des diesjährigen Summer of Code:
OpenGL-Renderer für libosmscout
Den Anfang macht ein Projekt im Zusammenhang mit libosmscout, einer C++-Bibliothek für Offline-Kartenrendering, Routing und Location Lookup. Was libosmscout momentan noch fehlt ist ein Renderpfad auf Basis von OpenGL.
Tim Teulings, der Mentor für dieses Projekt, äußerte sich sehr glücklich darüber, dass Fanny diese Aufgabe übernommen hat: Es habe sich um ein oft nachgefragtes Feature gehandelt, aber den bestehenden Entwicklern habe es an Zeit oder einschlägiger Erfahrung gefehlt. Eine großartige Studentin wie Fanny war da ein Glücksfall. Und nicht nur das, sie hat auch angekündigt, weiter an dem Projekt arbeiten zu wollen.
Ihr Teil der Bibliothek mit einer kleinen Demo-Anwendung ist auf Github einsehbar, und ihre Arbeit wurde kontinuierlich in den Hauptentwicklungszweig eingepflegt.
Wie hier sichtbar wird, funktioniert ihr Renderer gut und produziert ansehnliche Karten. Ziel war die korrekte Unterstützung von Flächen, Ways, Beschriftungen und Untergrund. Zusätzlich unterstützt der Code jetzt die meisten Stylingoptionen und funktioniert auf Linux sowie auf Windows. Weitere Informationen über die Arbeitsergebnisse findet ihr in ihrem Benutzerblog.
Wir hoffen, dass Fanny ihren Plan in die Tat umsetzt, weiter an libosmscout zu arbeiten, und so unserer OSM-Gemeinschaft erhalten bleibt!
3D Model Repository
Das nächste Projekt in der Reihe ist das 3D Model Repository von Pedro (auch bekannt als n42k). Die Projektidee gab es schon eine Weile, aber in der Vergangenheit hatten wir entweder keine guten Bewerbungen oder nicht genug Slots. In diesem Jahr hatten wir beides!
Eiffel Tower Model by joe89v (source)
Die Idee ist an sich einfach zu erklären: “Wir wollen eine Website, auf der 3D-Modelle für OSM hochgeladen werden können.” Trotzdem waren viele Entscheidungen zu treffen: Anders als frühere Versuche, die sich auf Gebäude konzentiert hatten, ist die Website jetzt für eine große Bandbreite an Modellen gedacht. Sie wird sich zumindest zu Beginn auf OBJ als Dateiformat konzentieren und wird eindeutige IDs bereitstellen, die in OSM leicht verlinkt werden können. Um sicherzustellen, dass die Modelle auch mit den Anforderungen der diversen Anwendungen im OSM-Umfeld kompatibel sind, betreuten Entwickler von zwei 3D-Renderern (OSM2World and OSMBuildings) das Projekt gemeinsam.
Einige von Pedros Ergebnissen sind in seinem Benutzerblog nachzulesen, seine willkommenen Codebeiträge finden sich auf Gitlab. Derzeit sind die Mentoren noch im Gespräch mit der Licensing Working Group und anderen, um Themen wie Hosting, Branding und einige rechtliche Fragen (z.B. im Zusammenhang mit der Geocoding Guideline) zu klären, aber wir gehen davon aus, dass die Seite im Laufe dieses Jahres online gehen wird.
Verbesserung JOSM-Plugin PT Assistant
Ein weiteres Projekt in diesem Jahr war die Verbesserung des Plugins PT Assistant für JOSM durch Giacomo Servadei. Obwohl der Name des Plugins nahelegt, dass es ausschließlich um ÖPNV geht, ist der Umfang des Projekts gewachsen, so dass nun auch Wander- und Fahrradtrouten berücksichtigt werden.
Daneben arbeitete Giacomo nach Kräften daran, das Plugin zu erweitern und es noch nützlicher zu machen. Zum Beispiel erlaubt es jetzt das Sortieren von Haltestellen abhängig von der Reihenfolge der Ways in der Routenrelation, und es hilft, Routenrelationen beim Aufteilen von Kreisverkehren intakt zu halten. Es hat auch bessere Prüfungen für Probleme und bietet jetzt Verbesserungsvorschläge an (z.B. für einzelne fehlende Ways oder für Routen, die nicht sauber an einem stop_position-Node in der Nähe eines dazugehörigen platform-Nodes beginnen oder enden).
Mehr zu Giacomo’s Hauptresultaten und seinen detaillierten Zeitplan ist im Wiki zu finden. Dazu gehören auch Links auf relevante Tickets und Patches. Alle seine Arbeiten wurden integriert und ihr könnt das Plugin einfach aktivieren und das Ergebnis selbst testen. Darüber hinaus gibt es weitere Informationen auch in Blogposts (1, 2) von Polyglot, der Giacomos Mentor bei diesem Projekt war.
Webbasierter ÖPNV-Editor
Dkocich arbeitete an einem ähnlich gelagerten Projekt, diesmal war es allerdings kein JOSM-Plugin. Stattdessen war das Ziel, eine Website fürs Bearbeiten von ÖPNV-Relationen zu erstellen, ohne einen kompletten Editor starten zu müssen.
Der Editor ist zwar noch nicht gemerged, dies wird aber vermutlich bald geschehen. Bis Dkocichs Hauptmentor Ilya die finale Version veröffentlicht, könnt ihr bereits einen Blick auf die Testversion OSM Public Transport Editor werfen. Ihr könnt auch den zugehörigen Code im Github-Projekt ansehen.
JOSM-Refactoring
Bei diesem Projekt geht es ganz und gar um den Kern-Code von JOSM. Das Projekt wurde von Michael Zangl betreut, der in den beiden vergangenen Jahren als Studierender am GSoC teilgenommen und an verschiedenen JOSM-Aufgaben gearbeitet hatte – eine Erfahrung, der er sein tiefes Verständnis für JOSMs Innereien verdankt. Dieses Projekt begann als Vorhaben, eine saubere Schnittstelle für die Menüleiste bereitzustellen, aber die Projektziele wurden während des Sommers etwas erweitert und verändert.
Bogdans warf sich in die Arbeit und machte sich mit der Codebasis von JOSM vertraut. Die Ergebnisse seiner Arbeit sind auf seiner Wiki-Benutzerseite zu sehen, die auch die von ihm bearbeiteten Tickets und Patches auflistet.
Ein großer Teil seiner Arbeit war “unter der Haube”, so dass diese Verbesserungen vermutlich nur JOSM- oder Pluginentwicklern auffallen. Es gibt aber auch für alle sichtbare Verbesserungen: Bogdans hat eine vorlagenbasierte Suchfunktion eingebaut und auch das Herunterladen von der Overpass-API in den Downloaddialog integriert. Darüber hinaus gibt es jetzt einen Wizard, der Mappern dabei hilft, Overpass-Anfragen zu formulieren – ähnlich wie die von Overpass Turbo bekannte Funktionalität.
Auch hier finden sich weitere Informationen im Benutzerblog von Polyglot, der als Co-Mentor fungierte.
Zusammenfassung
Es war wieder ein großartiger Google Summer of Code und wir sind sehr glücklich, dass wir teilnehmen konnten. Bei dieser Gelegenheit möchten wir uns bei allen Studierenden für ihre Arbeit bedanken und sind optimistisch, dass auch ihr als Nutzer von der einen oder anderen Verbesserung profitiert. Ein großes Dankeschön auch den Mentoren, die in ihrer Freizeit den Studierenden bei der Bewältigung ihrer Aufgaben geholfen haben, und der EWG für die Übernahme der organisatorischen Aufgaben.
Im Anschluss an den diesjährigen GSoC hatten wir eine kleine Umfrage unter unseren Mentoren durchgeführt, und obwohl einige von ihnen viel Zeit investieren mussten, war das Feedback einstimmig: Es war die Zeit wert und OSM sollte nächstes Jahr wieder teilnehmen. Daher bitten wir hiermit die EWG darum, auch nächstes Mal wieder eine Bewerbung für OSM beim GSoC einzureichen!