Skip to content

opengeospatial/styles-and-symbology

Repository files navigation

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.