Sponsoring Update OpenLayers in Mapbender

Wir benötigen Ihre Hilfe!

Im OSGeo-Projekt Mapbender stehen in den nächsten Monaten große Neuerungen an: Das Kartenframework wird auf die neueste Version von OpenLayers gehoben. Dies stellt die größte Veränderung an der Software dar, die in den letzten Jahren erfolgte!

Für die geplante Anpassung werden alle Elemente des Mapbenders umgeschrieben – angefangen von zentralen Bestandteilen wie der Karte selbst bis hin zur Legende, dem Layerbaum, der FeatureInfo-, dem Druck-Element usw. Die Details zur Einführung der neuen Version von OpenLayers können in der öffentlichen GitHub Code- und Ticketverwaltung nachvollzogen werden.

Im Mapbender-Team hat dieser Meilenstein „OpenLayers“ höchste Priorität und es sind dafür bereits umfangreiche personelle und finanzielle Ressourcen vorgesehen. Dennoch benötigen wir zur Erreichung des Ziels Ihre Unterstützung.

Mit dem Sponsoring-Programm kann sich jeder Interessierte an der Weiterentwicklung des Projektes beteiligen. Jeder Beitrag ist willkommen! Ab einem Beitrag in Höhe von 1.000 Euro veröffenlichen wir hier auf der Mapbender-Website Name und gern auch das Logo des Unterstützers.

 

Wie können Sie spenden?

Die Arbeit des Mapbender-Teams kann per Überweisung oder PayPal-Zahlung unterstützt werden:

Bankverbindung

VR-Bank Bonn eG
WhereGroup GmbH & Co. KG
IBAN: DE73 3816 0220 6114 2230 16
BIC: GENODED1HBO
Verwendungszweck: Mapbender Sponsoring

PayPal

Per PayPal können Sie über Ihren persönlichen PayPal-Account spenden.

 


 

 

Wir danken unseren Sponsoren und Spendern, die unser OpenLayers-Projekt unterstützen und es uns damit ermöglichen, diese wichtigen Entwicklungsarbeiten zu finanzieren und zu fördern.

Unser spezieller Dank geht an diese Unternehmen und Kommunen:

 

Deutsche Bahn
Vattenfall
Stomnetz Hamburg
Stadt Gütersloh
Stadt Troisdorf
WhereGroup GmbH & Co. KG

 

Der aktuelle Stand unseres Sponsoring-Programms zeugt, dass wir etwa ein Drittel der geplanten und organisierten Tage gesponsort und finanziert bekommen haben.

 


Unsere Ziele

Unser Ziel ist es, an den Funktionalitäten der einzelnen Mapbender-Elemente nichts zu ändern. Selbstverständlich erfolgen – wenn nötig – Korrekturen und Aufräumarbeiten; die Grundstruktur der Software bleibt jedoch bestehen. Nach Abschluss der Entwicklungsarbeiten wird es möglich sein, vorhandene OpenLayers 2-Anwendungen auf die neue OpenLayers-Version zu migrieren.

Die Integration der neuen OpenLayers-Version in Mapbender verspricht u.a. Vorteile wie das leichtere Handling von mobilen Anwendungen, die Unterstützung höherer Auflösungen sowie die bessere Kompatibilität zum Druckbild. Aber auch zukünftige Drafts wie die 3D-Umsetzung und die Unterstützung weiterer Dateiformate werden realisierbar. Außerdem wird das Arbeiten mit selbst gezeichneten komplexen Geometrien wesentlich flüssiger.

Angesichts der Tatsache, dass OpenLayers 2 zukünftig nicht weiter entwickelt wird, ist es darüber hinaus allein zur Vermeidung von Sicherheitsrisiken notwendig, Mapbender zu aktualisieren.

In der Zukunft werden wir Sie hier über die neuesten Entwicklungen informieren.

 


 

Testserver und Test-Anwendungen

Unser Testserver ist verfügbar unter: https://test.mapbender.org/ol4/. Dort werden die einzelnen Beispielanwendungen kontinuierlich aktualisiert. Eine einfache Beispielanwendung ist die einfache Karte: https://test.mapbender.org/ol4/application/map_naked.

Die Beispielanwendungen sind als YAML-Dateien geschrieben und liegen im Github unter: https://github.com/mapbender/mb-test-applications. Technisch entpacken wir diese einfach in das "mapbender/application/app/config/applications" Verzeichnis.

 


 

Blog und Stand der Dinge:

Die folgenden Texte sollen Ihnen ein Bild der aktuellen Entwicklung geben. Sie sind wie ein Blog nach Datum sortiert.

Letzter Vorbereitungstag (KW 24)

Am letzten Vorbereitungstag haben 3 unserer Kollegen die letzten Arbeitspakete zusammengefasst, die Tickets nochmal umsortiert und sozusagen ein Kochbuch für die Implementierung geschrieben. In diesem Kochbuch steht das Was und das Wie. Das Wer entscheidet sich für die meisten Tickets am ersten Implementierungstag

- Das Was: Zuerst werden die Elemente gescannt. Dazu gibt es eine Checkliste an Code, der OpenLayers spezifisch ist.

- Das Wie: Es gibt ein Regelwerk, die wie Fußballregeln Dinge von der Definition eines regulären Tores bis Abseits beschreiben und den Entwicklern konkret als Beiblatt helfen sollen. Dazu gehören auch unsere Styleguides, als Auffrischung am Spielfeldrand.

Wir errichten ein HQ (Hauptquartier), in das alle Entwickler sich telefonisch und über den TeamViewer connecten können. Dort werden wir 2x täglich den Status in kurzen Besprechungen durchgehen und aufgekommenen Fragen klären, die Tickets durchschauen und abends die TODOs für den nächsten Tag klären

 

1 Tag (18.06.2018)

Direkt am Morgen wird die Mannschaft auf das erste Gruppenspiel eingestimmt. Es geht gegen den FC Alte Elemente und ehe das Spiel zu Wochenbeginn stattfindet, gehen wir über Videoanalysen das Spielverhalten des Gegeners durch.

Anders gesagt: Das Kick-Off für das Team findet direkt morgens statt. Alle haben sich in die Runde eingewählt. Die Ziele für dieses Projekt werden nochmals dargestellt, die Erwartungen an jeden Entwickler formuliert (v.a. das freie Nehmen von Tickets aus dem Board und die Kommunikation).

Der erste Schritt ist der vorbereitete Scan der Elemente. Die Entwickler nehmen sich die Tickets eigens aus dem Board und Scannen sie nach der Checkliste durch. In den einzelnen Tickets stehen die gefundenen Code-Zeilen drin.

Gleichzeitig werden Backendfunktionen geschrieben, die für die Entwicklung notwendig sind, beispielsweise dass die YAML-Anwendungen dann auch mit ihren eigenen WMS Diensten im neuen OL4 Gewand laufen.

Als dritter paralleler Schritt werden schon in den Nachbarstationen im anderen Team die Beispiel-Anwendungen erstellt. Die Tests werden über vordefinierte YAML-Anwendungen laufen, die im app/config/applications Ordner liegen und eine spezifische Funktion einbinden.

Die Mittagsbesprechung zeigt, dass wir schnell vorankommen. Die noch offenen Scan-Tickets sind (nicht überraschend) die Map, der Layerbaum und der Digitizer, allesamt sehr zentrale und/oder komplexe Elemente.

Die Abschlussbesprechung zeigt dann, dass der Tag abenteuerlich gut war, unsere Runde sehr positiv und motiviert war. Nach ein wenig Diskussion um das Wie haben wir für den zweiten Tag einen guten Plan.

Die Entwicklungen des ersten Tages, die parallel liefen:

- OpenLayers4 spezifisches CSS kann eingebunden werden: Für die beiden Map-Engines (OL2 und OL4) können unterschiedliche JS und CSS ausgegeben werden.

- Die AssetFactory und ApplicationAssetCache Klassen sind da (ich habe diesen Satz jetzt nur übernommen)

- Das Mapbender.Model (OL4-Version) ist entstanden. Es hat momentan einige Methoden, aber noch keinen Inhalt. Dieser wird morgen gemeinsam erstellt. (https://github.com/mapbender/mapbender/blob/ol4/src/Mapbender/CoreBundle...)

- Das Model übernimmt Wrapper Funktionen, auch für triviale Tasks. Damit stellen wir eine Kompatibilität für Projekte und deren Umstieg auf OL4 her. Wir beachten die Regel Nr. 1: Es wird nicht am Model vorbei gearbeitet. ;-)

- Schöne Erkenntnisse: Das OL4 Fullscreen Beispiel zeigt keinen Fullscreen, sondern ein Fenster.

 

Tag 2

Einige Elemente werden noch gescannt. Parallel fangen die ersten Implementierungen an: Am Layertree, am Sketch, Scale Selector, GPS, Redlining, Ruler. Und drittens wird das Mapbender.Model geschrieben.

Dieses wird die zentrale Instanz sein, um die Methoden an OpenLayers zu kapseln. Gemäß den Regeln "Nicht am Model vorbeiarbeiten" und "Methoden abstrahieren". In der kommenden Zeit werden wir feststellen, dass sowohl die OpenLayers Dokumentation nicht alles beschreibt und es einiges an Try & Error gibt und zweitens die Abstraktion der Klassen erst geschieht, wenn die Elemente soweit übersetzt sind. Wir wollen ja auch Ergebnisse sehen.

Speziell in dieser Anfangszeit gibt es noch viele Fragen: Zu technischen Dingen aber auch organisatorischen Dingen. Auch hier, in dieser Coding-Session, gibt es die typischen Team-Storming und -Norming Prozesse.

 

Tag 3

Der Line- und Area-Ruler werden angegangen. Hier können einfache Beispiele für das Vector-Handling herausgezogen werden. Auf der anderen Seite wird das WMS-Layer-Management realisiert: Wie kommen die Datenquellen, Layersets und Layerset-Instanzen in die Anwendung, so dass sie von dem Modell ausgelesen werden können. Darauf werden dann Methoden geschrieben wie: "Gebe mir die aktuell aktiven Layer".

Mit der Projektion wird eine interessante Frage angegangen: Hier arbeiten OpenLayers4 anders. Wir binden die Proj4JS Bibliothek ein und arbeiten damit an den von Mapbender unterstützten Projektionen.

Kleine Methoden, die zentral werden sind: CreateMousePosition, getScale, etc.

Schlußendlich wurden Anpassungen am Deployment verbessert, so dass wir die OpenLayers Bibliothek mit den Debug-Möglichkeiten in den Komponenten mitliefern (und die in den letzten Tagen verwendete Methode ablösen können).

 

Tag 4

Es gibt mehrere Möglichkeiten das Model zu nutzen und aufzurufen. Es gibt die erste größere Zusammenfassung der im Model vorhandenen Funktionen: der Getter, um die Infos zu bekommen und der Setter, um einige Parameter zu ändern. Beispielsweise die Opacity für einzelne Layer. Methoden, die weiter entwickelt werden sind im Zusammenhang mit dem Layertree: zoomToExtent für die Map, den View und den Layer. Regeln für die Popups der Mess-Tools und weiterer Elemente Wir entscheiden uns aus Gründen der Kompatibilität und des Testings, das bisherige Verhalten beizubehalten, obgleich OpenLayers4 hier hübsche Möglichkeiten bietet. Das FeatureInfo wird begonnen, die Abhängigkeit zum Layertree ist erfüllt. Es wird für Vektoren an den Custom Styles gearbeitet. Wir merken, dass Rechtecke wie Kreise sind mit 4 Ecken. Es bleibt spannend.

 

Tag 5

Nach einer Woche sehen wir die ersten richtigen Erfolge: Die Karten "fluppen", die Testserver sind aktualisiert. Es fallen uns immer wieder die vielen Details im Mapbender auf, die spezielle Logik und kleine Helferlein für verschiedene User-Stories bieten. Für einige junge Mapbender-Team Mitglieder ist das eine spannende Erfahrung. Viel Code wird in unseren OL4 Branch gemergt. Der Base-Source-Switcher wird umgesetzt, der SRS-Svitcher (sic!) ist fertig, das Coordinate-Utility wird umgeschrieben. Die Anzahl der YAML-Anwendungen mit ihren Abhängigkeiten wächst. Der öffentliche Testserver (http://test.mapbender.org/ol4/) enthält die ersten Beispiele.

 

Deutsch

 

FOSS4G Europe 2018 Portugal 16.-21.07.2018 FOSS4G Europe Conference (Guimarães) FOSS4G 2018 Dar es Salaam, Tansania 14.-18.08.2018 FOSS4G Dar es Salaam (Tansania)

OSGeo Project

Follow us on Twitter https://twitter.com/mapbender/