Contributions
During the Code Sprint, we achieved the following:
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.
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.
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.
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!
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.
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.
GeoStyler will be featured on multiple talks on FOSS4G 2023.
Kudos to everyone!