Back to top

GeoStyler Code Sprint 2023

From Monday, 08.05 until Friday, 12.05.2023 the second GeoStyler Code Sprint took place. 12 motivated coders from all over the world participated and provided great contributions to the GeoStyler project.

We want to thank everyone who contributed to the GeoStyler project. Thank you for your motivation and engagement, for all your great contributions, for all the ideas that came up during the code sprint and for all the fun we had during this week! You are awesome!

Thank you

@slafayIGN, @geographika, @ocruze, @pprev94, @dnlkoch, @kaivolland, @hwbllmnn, @jansule, @SchulA, @OSHistory, @marcjansen and @ahocevar.

Code Sprint Members


Sponsors

We also want to thank the sponsors of this year’s code sprint:

OSGeo logo


FOSSGIS logo


Thank you, OSGeo, for sponsoring the social event!

Thank you, FOSSGIS e.V., for sponsoring the catering for the whole week!

We also want to thank terrestris GmbH & Co. KG for providing the facilities and handing out these great GeoStyler cups!

Additional thanks to all companies that supported this event by allowing their employees to participate!

All of this helped us strengthening the bonds between all participants and thereby, you play an important role in growing the GeoStyler community.

Contributions

During the Code Sprint, we achieved the following:

GeoStyler Code Sprint Stats


GeoStyler CLI

The GeoStyler CLI can now additionally be used as standalone executable! There is no need to install Node.js anymore, if you just want to convert between different styling formats without using the UI. The executables can be downloaded for each version from the repository. We support Linux, MacOS and Windows.

Besides that, some maintenance work was done on the repository and semantic-release was enabled.

Kudos to @geographika and @jansule.

GeoStyler Converter

We now have a new demo application that solely focusses on the conversion between different styling formats: GeoStyler Converter Demo. Paste a style into one of the editors, edit the style and convert it into any other format. Some final polishing is still in the making, but the GeoStyler Converter Demo can already be used. See also the geostyler-converter-demo repository.

GeoStyler Converter Demo

Kudos to @slafayIGN, @ocruze and @pprev94.

Support for Expressions in the UI

After setting the basement for the usage of expressions in the last code sprint in 2022, the GeoStyler UI now also supports expressions. Users are now enabled to create styling rules based on attributes of their dataset. Colors, sizes, strokes, etc. can now all be computed with values derived from the geodata itself. So if you want the size of a point representing a city being proportional to the number of its inhabitants, this can now be easily achieved. Many real-world styling challenges can now be adressed in an appropriate, compact and flexible way. And the best part of it: There is no need to write the expressions by hand. The UI provides a graphical editor just for that. Now, the parsers need to be updated to fully support this feature.

Expressions UI example

Kudos to @kaivolland.

GeoStyler UI

Besides the support for expressions, the GeoStyler UI was improved in various ways. We are currently adding icons to options in dropdowns, so users can directly see what an option stands for. What was the difference again between butt, round, and square line caps? The answer will be directly graspable from the editor.

We also cleaned up some dependencies, make use of Vite for creating our browser builds, improved the test performance, and upgraded to antd 5. As part of this, we replaced the windows with antd modals and did some polishing here and there.

The previously introduced GeoStylerContext was also implemented in various components, which will simplify adjusting the GeoStyler UI to your needs.

GeoStyler UI Modal Example

Kudos to @dnlkoch, @SchulA, @jansule and @hwbllmnn.

GeoStyler Mapbox Parser

We spent quite some time discussing the geostyler-mapbox-parser and how we can integrate the concept of map-based styles (which mapbox is using) in addition to layer-based styles (which SLD is using) in GeoStyler. We came to the conclusion that layers in mapbox fit quite well to the idea of rules in layer-based styles. Both are entities consisting of filters, scale denominators and styling instructions. With the support for expressions in GeoStyler in particular, we should now be able to advance the development of the geostyler-mapbox-parser and make it a first class citizen in the GeoStyler ecosystem.

Besides that, the geostyler-mapbox-parser was enhanced by splitting or merging styling rules where needed. A consistent style structure after parsing is still being maintained by enriching the mapbox-style with metadata.

Kudos to @ocruze, @pprev94, @slafayIGN, @kaivolland, @jansule and @ahocevar.

GeoStyler Homepage

The GeoStyler homepage was updated to provide better information about the idea of GeoStyler and the different tools that it provides. GeoStyler is more than just a UI library!

GeoStyler Homepage Example


Kudos to @OSHistory, @geographika and @jansule.

GeoStyler SymCore Parser

We added a new parser to the GeoStyler ecosystem: the geostyler-symcore-parser. This parser will allow the conversion between geostyler-style and the new OGC Styles & Symbology Models and Encodings - Part 1: Core standard. For now, the parser only contains the typings of the standard, but will be implemented in the future. This parser should facilitate the switch to the new standard and will hopefully increase the adoption of it.

Kudos to @kaivolland and @jansule.

GeoStyler GeoServer Plugin

The geostyler-geoserver-plugin was updated to use the latest version of GeoStyler. Additionally, multiple bugs were fixed and the build artifacts are now being published on nexus.terrestris.de. Instructions on how to download and use the build artifacts were added to the README.

GeoStyler GeoServer Plugin

Kudos to @dnlkoch, @hwbllmnn and @marcjansen.

Miscellaneous

Users will now be redirected to the GeoStyler homepage when going to geostyler.github.io.

The geostyler-cql-parser was fixed, so that it can be directly used without the need to add configurations to webpack.

The GeoStyler repositories are now transitioning to using issue forms instead of templates. This should lower the barrier for non-technical users to create issues and thereby helping GeoStyler becoming a more welcoming community. See for example the issue form for a feature request.

The GeoStyler Beginner Workshop is currently being updated and will use Docusaurus instead of Jekyll as static site generator. The content of the workshop will also be updated in the future, to reflect the latest state of GeoStyler.

The robustness of geostyler-rest was improved by better handling unknown input and output formats, or inconsistent styles.

Kudos to @slafayIGN, @OSHistory and @jansule.

Conference talks and other media

GeoStyler will be featured on multiple talks on FOSS4G 2023.

Kudos to everyone!

Again, we want to thank everyone who participated in this Code Sprint. It was great fun and an absolute pleasure working with you! We are already looking forward to the next GeoStyler Code Sprint.