OGC Styles & Symbology
This repository hosts the working draft documents for the multi-part OGC Cartographic Symbology Standard. Part 1: Core model and encodings is available as HTML or PDF and is to be considered version 2.0 of "SymCore".
The following extensions are also planned:
- Part 2: Model extension for graphical shapes and transformations
- Part 3: Model extension for geometry relations and manipulation
- Part 4: Model extension for additional coverage symbolization
In comparison to the current OGC Symbology Conceptual Model: Core Part ("SymCore") version 1.0, the new draft candidate Standard aims to better reflect its classification as an OGC Implementation Standard by including the requirements classes needed to enable the implementation of interoperable encodings, renderers (e.g., OGC API - Maps / OGC API - Tiles) and systems parsing and/or generating style definitions (e.g., OGC API - Styles, visual style editors, style transcoders).
It does so by featuring:
- A modular logical and conceptual model for styling capabilities,
- A minimal Core requirements class including clear extension mechanisms, through the definition of abstract Selectors, Symbolizers, and Expressions,
- a basic Vector Styling requirements class,
- a basic Coverage Styling requirements class,
- requirements classes providing additional styling functionality,
- CartoSym-JSON, a JSON encoding of the conceptual and logical model facilitating machine readability,
- CartoSym-CSS, a CSS-inspired encoding of the conceptual and logical model facilitating hand-editing.
The current published version of OGC Symbology Conceptual Model: Core Part (SymCore) 1.0 is available in HTML or PDF.
Part 1 Requirements classes
Basic portrayal capabilities
- a core symbology conceptual and logical model based on Styles as a list of Styling Rules consisting of a Symbolizer and optional Selector Expression,
- basic vector styling (including fills, strokes, and markers supporting text, image or dot graphics)
- basic coverage styling (including mapping fields to a color, alpha or single channel and applying a colormap),
- basic labeling (placement of labels supporting text, image or dot graphics)
Common portrayal capabilities
Additional Expression capabilities
Encodings
- CartoSym-JSON which can be readily parsed by a generic JSON parser.
CartoSym-JSON inherits and extends CQL2-JSON for expressions used in selectors and parameter values.
See example style sheet and JSON Schema.
- CartoSym-CSS, a more expressive encoding inspired from Web CSS and other cartographic CSS-like styling languages (e.g., GeoCSS, CartoCSS, MapCSS, GNOSIS CMSS) which is better suited to hand-edit styles.
CartoSym-CSS inherits and extends CQL2-Text for expressions used in selectors and parameter values.
See example style sheets and ANTLR 4 BNF grammars for the lexer and parser.
The following requirements classes are planned for the next parts of the standard:
Part 2 Requirements classes
Advanced Stroke and Fills
- specific joins and caps for Strokes
- Graphic pattern Strokes,
- Graphic pattern Fills,
- gradient fills
Additional portrayal capabilities
- shape graphics including circles, ellipses, arcs, rectangles (rounded or not) and paths (polylines and polygons),
- shape outlines,
- vector graphic hierarchy, including full 2D transforms,
- 3D model graphics and 3D transforms,
- extrusion of vector features (with min and max height),
- image outlines
Part 3 Requirements classes
Additional Expression capabilities
- spatial relation standard functions,
- temporal relation standard fuctions,
- geometry manipulation standard functions,
- symbolizer geometry
Part 4 Requirements classes
Advanced Coverage Styling
- bitwise operators,
- coverage as points,
- coverage as contours,
- contrast enhancement,
- hue, saturation, value modifier,
- aggregation functions
Communication
Join the OGC Styles & Symbology mailing list.
Visit the OGC Styles & Symbology project on the OGC portal after signing the Observer Agreement.
Most work on the specification takes place in GitHub issues,
so browse there to get a good idea of what is happening, as well as past decisions.
Contributing
The contributor understands that any contributions, if accepted by the OGC Membership, shall be incorporated into OGC standards documents and that all copyright and intellectual property shall be vested to the OGC.
The OGC Styles & Symbology Standards Working Group (SWG) is the group at OGC responsible for the stewardship of the standard, but is working to do as much work in public as possible.
Pull Requests from contributors are welcomed. However, please note that by sending a Pull Request or Commit to this GitHub repository, you are agreeing to the terms in the Observer Agreement.