During the Code Sprint, we achieved the following:
GeoStyler User Manual
We now have a GeoStyler user manual, which provides a user centric description on how to style geodata with GeoStyler.
The manual is still a work in progress, but the basic functionality is already documented. Check out https://geostyler.github.io/geostyler-cookbook/ for the current state.
Kudos to @krishnaglodha and @jansule.
GeoStyler CardLayout
In October 2021, a concept for an additional layout for the GeoStyler UI was created and main features were implemented. This layout omits the use of windows and thereby provides a clean and mobile-friendly look. During the Code Sprint, the implementation could be finalized, and the new layout can be used via the <CardStyle />
component.
Kudos to @annarieger and @jansule.
GeoStyler GeoServer Plugin
Multiple fixes and improvements were applied to the GeoStyler community extension for GeoServer. Tests were added, deploy pipelines created, the overall integration into GeoServer was improved and a docker based Dev-Setup was created. Also, the extension will now be served under the dedicated repository geostyler-geoserver-plugin.
Kudos to @dnlkoch.
Dev-Experience / Dev-Setup
Dev-Experience and Dev-Setup were improved in many different ways. We now have a better support for developing on windows.
Also, the performance for building and working with our interactive documentation was improved drastically.
Kudos to @slafayIGN, @geographika, @ocruze, @pprev94, @dnlkoch and @kaivolland.
Support for Expressions
For quite a while, we were working on the support of expressions in GeoStyler. Through these, it is possible to set styling properties attributively and feature-based, which allows for more compact and dynamic styles. For example, color values can be calculated based on a function that uses attributes of the dataset as function arguments. So instead of providing a single rule for each possible color value respectively, users can now provide a single rule that describes the color value for all features based on a single expression.
Expressions are now supported in the geostyler-style format and was already implemented for the geostyler-cql-parser and the geostyler-sld-parser. We will work on supporting other parsers in the future.
Kudos to @hwbllmnn.
French translations
GeoStyler now also supports French.
Kudos to @slafayIGN.
GeoStyler REST API
The GeoStyler REST API was enhanced by providing a new API endpoint GET /geostyler-rest/api/versions
that gives information about the versions of the used parsers. Besides that, multiple bugfixes and minor improvements were done.
Kudos to @chrismayer.
Unsupported properties
The GeoStyler UI as well as the geostyler-openlayers-parser and geostyler-sld-parser make now use of the unsupportedProperties
interface. Due to these changes, the UI now gives hints about properties that were used in the UI but are not supported by a specific parser.
Kudos to @kaivolland.
Mapfile validation
The geostyler-mapfile-parser will soon be able to validate mapfiles.
Kudos to @geographika.
GeoStyler Demo
The demo application was improved in multiple ways. The <PreviewMap />
component now enables zooming and panning in order to verify proper scaleDenominator configuration. The demo now also provides feedback when loading style and/or data. Furthermore, we got rid of using create-react-app and provided our own webpack configuration which facilitates working with linked dependencies.
Kudos to @ocruze, @pprev94, @hwbllmnn and @jansule.
GeoStyler Mapbox Parser
The geostyler-mapbox-parser was improved by fixing the opacity handling for MarkSymbolizer and harmonizing its behaviour with the other parsers.
Kudos to @ocruze and @pprev94.
Refactorings
All class based React components were refactored into the more compact and better maintainable function based components.
Kudos to @kaivolland.
Bugfixes
The geostyler-cli now also works properly on windows.
Kudos to @geographika.
GeoStyler will be featured on multiple talks on FOSS4G 2022. Also, there will be videos published on how to work with GeoStyler.
Kudos to everyone!