Sponsoring Update OpenLayers in Mapbender

We need your help!

In our OSGeo project Mapbender, the coming months will contain some major improvements: The map framework will be upgraded to the latest version of OpenLayers. This is the biggest change to the software that has been made in recent years!

The scheduled customizations will include a rewrite of all elements of Mapbender, from key components such as the map itself to the legend, the layer tree, the FeatureInfo, the Print element, and so on. For details of the introducing of the new version of OpenLayers are public at our GitHub code and the Github ticket management.

For our Mapbender-Team this milestone "OpenLayers" has the highest priority and we have already planned extensive human and financial resources to achieve this milestone. Nevertheless, we need your support to achieve the goal.

With this sponsoring program, anyone interested can participate in the further development of the project. Every contribution is welcome! Starting from a contribution of 1.000 Euro, we publish here the name and also the logo of the supporter on this website.

How can you donate?

The work of the Mapbender team can be supported by bank transfer or via PayPal:

Bank Transfer:

VR-Bank Bonn eG
WhereGroup GmbH
IBAN: DE73 3816 0220 6114 2230 16
Verwendungszweck: Mapbender Sponsoring


You can donate via PayPal with your personal PayPal account.


We thank out sponsors and donors who support our OpenLayers-project and who enable us to achieve this important development-step with their financial support.

Our special thank you goes to the following companies and municipalities:


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


The current status of our Sponsoring program shows, that approx. half of the planned and organized days are sponsored and financed yet.

Stand Sponsoring



Test server and Test applications

Our test server is available at: https://test.mapbender.org/ol4/. We will continue to update several example applications. A basic application is the simple map: https://test.mapbender.org/ol4/application/A1_DB_Test.

The example applications are written provided as YAML files and are available on GitHub: https://github.com/mapbender/mb-test-applications. You can download the files and copy them into the "mapbender/application/app/config/applications" directory.



Our goals

Our goal is not to change the functionality of the individual Mapbender elements. Of course - if necessary - corrections and cleanups are made; however, the basic structure of the software will remain. Upon completion of the development work, it will be possible to migrate existing OpenLayers 2 applications to the new OpenLayers release.

The integration of the new OpenLayers version in Mapbender promises advantages such as the easier handling of mobile applications, the support of higher resolutions and the better compatibility with the printed image. Also future drafts such as the 3D implementation and the support of other file formats are feasible. In addition, working with self-drawn complex geometries is much smoother.

Moreover, given that OpenLayers 2 will not be developed further in the future, it is necessary to update Mapbender just to avoid security risks.

In the future, we will provide here small articles about the work done.



Blog & Status Report

The following information shall give you an overview on the actual development.

Preparation before the sprint (week 24)

3 Members of Mapbender team prepared the sprint and worked on the tasks, they provided a concept, created tickets and defined the workflow and priority.

What todo: All elements have to be analysed. We made a checklist which the developer has to use to analyse each element and find out how OpenLayers is involved.

How to proceed: We setup a catalog of rules to follow.

We provide two weeks where the developer can concentrate on the OpenLayers topic and stay in contact via chat and video conference. Twice a day we come together for a meeting to give a status report, answer questions and define the next steps.


Day 1: 18.06.2018

The whole team got an introduction in the goals and how to work on it. All elements were scanned and the check were made. You find the status and checklist in several tickets. https://github.com/mapbender/mapbender/projects/3

At the same time backend functions were defined to communicate with OpenLayers 4.

Demo applications were prepared. We defined new applications with only few functionality to run and test them separately.

- Integration of OpenLayers 4 specific CSS: for the different map engine (OpenLayers 2 & OpenLayers 4) you can use different JavaScript and CSS

- AssetFactory & ApplicationAssetCache Classes were defined

- Definition of the Mapbender.Model OpenLayer 4. There are some methods already but no content yet. The content will be generated tomorrow (https://github.com/mapbender/mapbender/blob/ol4/src/Mapbender/CoreBundle...) The Model will provide wrapper functions for many tasks. Like this we will provide compatibility for individual Mapbender projects and prepare the update to OpenLayers 4.

We got along quite well at the first day! Like expected some elements (like map, layertree, digitizer) were more complex as others and will need more refactoring. The team is high motivated and looks forward to the next day.


Day 2: 19.06.2018

Some elements were still scanned. Parallel we started with the first implementations: layertree, sketch, scale selector, GPS, redlining, ruler. We also worked on the Mapbender.Model.


Day 3: 20.06.2018

Line and area ruler are on the agenda. Simple examples can be used for vector handling. We also worked on the WMS layer management realisiert. How are the data sources, layersets and layerset instances transfered to the application, so that the Model kann get the information. Projection: OpenLayers4 works different with projections than Openlayers2. We integrate the Proj4JS library. We define helper functions centrally: CreateMousePosition, getScale, and more. We improved the deployment.


Day 4: 21.06.2018

More possibilities to call and use the model. First collection of the functions available in the model: Getter, to provide information and Setter, to set parmater f.e the opacity for a service. We imporved the methods concering layertree: zoomtoextent for map, view and layer. We define rules for the popups. We start with the refactoring of the FeatureInfo element. We worked on the custom style for vector elements.


Day 5: 21.06.2018

After a week we can see the first real improvements: We updated the test server. We notice how many deatail Mapbender provides, the special logic, the special modules for the different user stories. For some of the new developer it is quite exciting. We merge a lot of code to the ol4 branch - BaseSourceSwitcher and SRSSelector are ready. Coordinate-Utility is modified. The number of test applications grows. The test server (http://test.mapbender.org/ol4/) provides first example applications.


Day 6

Again some analogies to football: Things going smoothly into the 2nd half. The developers know what to do and struggle a bit with the defensive strategy of the OpenLayers documentation. The opponent still plays with a sweeper (Libero), who catches our forwards right before they are in front of the goal.

We worked together with the FeatureInfo, the Export and Print. Some underlying work with the Overview Map is done (like the map and the layertree the coordination with the backend WMS) and the ticket is back in the backlog and grabbed again by another developer for adding the remaining logic. The Map-Popup is implemented.

We made a demo-application configured in the backend (http://test.mapbender.org/ol4/application/A1_DB_Test) with BaseSourceSwitcher and (later) thematic layers.


Day 7

Our defense is under pressure: The OverviewMap has some problems with the coordinate-systems and x/y axis (it shows Africa), the Ruler events are going crazy, the image export seemed to be ready but we found some bugs. On the other hand, the FeatureInfo is ready and tested and needs to be merged. We work on the small but fine helper and functionality-code of the Scale-Elements (Show Scale, Change Scale). The Layertree also has a lot of functionality that needs to be checked: Changing the order and the effects of not only the GetMap request but also the other elements. At last, the Searches, SimpleSearch and SearchRouter are in development. Because of data-copyright-reasons (although it is the public BKG gazetteer data), we will not provide a public demo yet.


Day 8

So, how many extents do we have? And how many do we need? The projection engine of OpenLayers throws some Babylonian terms into the arena which are already targeted by Mapbender that have different meanings. Or with a Football analogy: We have 4 balls in the game, all called extent. The extent of the projection, the extent of the OpenLayers view, the extent of the map-element, the extent of the OGC service and layers in the layertree.

New events of the SRS selector has to be merged into the other elements: Some new zoom and scroll events. The Redlining is finished and finally supports the text, the SimpleSearch is nearly finished and needs some polishing of the IconStyle display. WMS 1.3.0 has some problems with the X/Y axis order after reprojection. That seems to be somewhere deep in the OpenLayers code.




FOSSGIS 2020 Freiburg



Freiburg (Germany)

FOSS4G-Konferenz Calgary



Calgary (Canada)

OSGeo Project

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