GeoStyler - One Tool for all Styles

Jan Suleiman, terrestris GmbH & Co. KG
Daniel Koch, terrestris GmbH & Co. KG

GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Jan Suleiman

  • M.Sc. Geoinformatics
  • Full-Stack Developer
    @terrestris, Bonn, Germany
  • GeoStyler Core Developer
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Content

  1. What is GeoStyler?
  2. New Features
  3. News from the Community
  4. What's next?
Link to the presentation: https://terrestris.github.io/foss4g2023/talks/geostyler.html
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What is GeoStyler?

  • Graphical style-editor for geodata
  • Converter of styling formats
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What is GeoStyler?

Graphical style-editor for geodata
GeoStyler is NOT an application
GeoStyler is a LIBRARY,
that you can integrate into your own applications
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What is GeoStyler?

Converter of styling formats
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Which problems solves GeoStyler?

Editing of styles…


                LAYER
                  NAME "point_simple_point"
                  TYPE POINT
                  DATA "../shapes/points.shp"
                  EXTENT -180 -90 180 90
                  METADATA
                    "wms_title" "point_simple_point"
                    "wms_srs" "EPSG:4326"    
                  END
                  CLASS
                    STYLE
                      SYMBOL "circle"
                      COLOR 0 255 0
                      SIZE 15
                    END
                  END
                END
              
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Which problems solves GeoStyler?

…without expert knowledge…


                  LAYER
                    NAME "point_simple_point"
                    TYPE POINT
                    DATA "../shapes/points.shp"
                    EXTENT -180 -90 180 90
                    METADATA
                      "wms_title" "point_simple_point"
                      "wms_srs" "EPSG:4326"    
                    END
                    CLASS
                      STYLE
                        SYMBOL "circle"
                        COLOR 0 255 0
                        SIZE 15
                      END
                    END
                  END
                

                  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                  <StyledLayerDescriptor version="1.1.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:se="http://www.opengis.net/se">
                    <NamedLayer>
                      <se:Name>Demo Style</se:Name>
                      <UserStyle>
                        <se:Name>Demo Style</se:Name>
                        <se:FeatureTypeStyle>
                          <se:Rule>
                            <se:Name>Rule 1</se:Name>
                            <se:PointSymbolizer uom="http://www.opengeospatial.org/se/units/pixel">
                              <se:Graphic>
                                <se:Mark>
                                  <se:WellKnownName>circle</se:WellKnownName>
                                </se:Mark>
                              </se:Graphic>
                            </se:PointSymbolizer>
                          </se:Rule>
                        </se:FeatureTypeStyle>
                      </UserStyle>
                    </NamedLayer>
                  </StyledLayerDescriptor>
                
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Which problems solves GeoStyler?

…suitable for automation

GeoStyler CLI

                  geostyler -s qgis -t sld -o output.sld input.qml
              
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

i18n

French and Hungarian translations
Additional languages: 🇨🇳 🇺🇸 🇩🇪 🇪🇸
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

Layout

Card Layout Beta
Especially useful when having limited widths
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

Layout

Card Layout Beta
Especially useful when having limited widths
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

Attributive labels


                Land: {{federal_state}} 
                Population: {{pop}}
              
Incl. auto-complete
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

Expressions


                Opacity: {{pop / total_pop}} 
                Color: {{'#aabb' + pop}} 
              
  • Attributive styling
  • Compact rules
Classification without expressions
Classification with expressions
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

GeoStyler Context

Global configuration of GeoStyler

                const myContext = {
                  "composition": {
                    "LineEditor": {
                      "opacityField": {
                        "visibility": false
                      },
                      "widthField": {
                        "default": 5
                      }
                    },
                    "IconEditor": {
                      "visibility": false
                    }
                  },
                  "locale": {
                    "Style": {
                      "nameFieldLabel": "Style Name"
                    }
                  }
                };

                <GeoStylerContext.Provider value={myContext}>
                  <Style style={style} onStyleChange={onChange} />
                </GeoStylerContext.Provider>
              
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

GeoStyler CLI

Executables - for Linux, MacOS and Windows
See GeoStyler CLI Repository
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

GeoStyler CLI

Self-contained - no need to install NodeJS
See GeoStyler CLI Repository
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

geostyler-mapbox-parser

  • Support latest geostyler-style
  • Support expressions
  • Now a first-class citizen

                  {
                    version: 8,
                    name: 'Simple Circle',
                    layers: [
                      {
                        id: 'Simple Circle',
                        type: 'circle',
                        paint: {
                          'circle-color': '#000000',
                          'circle-radius': 5,
                          'circle-opacity': 1,
                          'circle-stroke-width': 2,
                          'circle-stroke-color': '#FF0000',
                          'circle-stroke-opacity': 0.5
                        }
                      }
                    ]
                  }
                

                  {
                    name: 'Simple Circle',
                    rules: [{
                      name: 'Simple Circle',
                      symbolizers: [{
                        kind: 'Mark',
                        wellKnownName: 'circle',
                        color: '#000000',
                        radius: 5,
                        fillOpacity: 1,
                        strokeWidth: 2,
                        strokeColor: '#FF0000',
                        strokeOpacity: 0.5
                      }]
                    }]
                  }
                
See GeoStyler Mapbox Parser Repository
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

New Features

GeoStyler Converter Demo

Paste - Edit - Convert See GeoStyler Converter Demo Repository
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

News from the Community

GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

News from the Community

GeoStyler Code Sprint 2022

It's all about style Code Sprint 2022 Blogpost

GeoStyler Code Sprint 2023

It's all about style - again Code Sprint 2023 Blogpost
Thanks to all participants!
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

News from the Community

GeoStyler Code Sprint 2024

When? TBA Where? TBA Info will be provided on geostyler.org
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

News from the Community

Contributors

Thanks to all contributors
who help improving GeoStyler constantly
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

News from the Community

How can I try out GeoStyler?

Info, docs & tutorials on geostyler.org
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What's next?

GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What's next?

Support of expressions in more parsers


              <CssParameter name="stroke-width">
                <Function name="max">
                  <Function name="pi" />
                  <Function name="strLength">
                    <PropertyName>Foo</PropertyName>
                  </Function>
                </Function>
              </CssParameter>
            
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What's next?

geostyler-symcore-parser

Convert from/to OGC Styles & Symbology Models and Encodings - Part 1: Core ("SymCore")
See GeoStyler SymCore Parser Repository and talk on FOSS4G 2023 by Jerome St-Louis
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

What's next?

Updating and improving docs, tutorials, etc.

GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Thank you for your attention


and enjoy FOSS4G 2023
GeoStyler - One Tool for all Styles, FOSS4G 2023, Prizren, Kosovo

Imprint

Authors

Jan Suleiman
terrestris GmbH & Co. KG
Kölnstr. 99, 53111 Bonn, Germany
suleiman@terrestris.de
Daniel Koch
terrestris GmbH & Co. KG
Kölnstr. 99, 53111 Bonn, Germany
koch@terrestris.de

License

Slides are published under CC BY-SA license.
terrestris.github.io/foss4g2023
git repository