2026-09-01 –, Himawari
Update on the FOSS libCartoSym, libCSCQL2 and libDE9IM implementing the candidate OGC Cartographic Symbology 2.0 Standard, Common Query Language (CQL2) and Simple Features. http://cartosym.org/ https://github.com/ecere/libCartoSym
This session will provide an update on the latest developments related to libCartoSym, focusing on:
- The cs-canif tool allowing to transcode styles, expressions and geometries, evaluate styles and expressions, and evaluate spatial relations between geometries,
- Completed support for lossless conversion between the CartoSym-CSS and CartoSym-JSON encodings,
- Improved support for transcoding styles from Mapbox GL/MapLibre Styles to the CartoSym conceptual model,
- Improved support for transcoding styles to OGC Styled Layer Descriptor / Symbology Encoding,
- Progress on providing bindings to libCartoSym, libCSCQL2 and libDE9IM to different programming languages (C, C++, Python...),
- A progress update on the candidate OGC Cartographic Symbology 2.0 standard.
libCartoSym is a Free and Open-Source Software library implementing the OGC Cartographic Symbology 2.0 (https://docs.ogc.org/DRAFTS/18-067r4.html), Common Query Language (https://www.opengis.net/doc/IS/cql2/1.0) and Simple Features (https://portal.ogc.org/files/?artifact_id=25355) standards.
libCartoSym implements both the CartoSym-CSS (https://docs.ogc.org/DRAFTS/18-067r4.html#rc-cscss) and CartoSym-JSON (https://docs.ogc.org/DRAFTS/18-067r4.html#rc-json) encodings defined in the candidate standard.
libCartoSym and the cs-canif tool can be installed with pip install cartosym (https://pypi.org/project/cartosym/), while its dependency libCSCQL2 implementing CQL2 support can be installed with pip install cscql2 (https://pypi.org/project/cscql2/).
The library allows to read and write these CartoSym encodings, as well as import from and export to additional encodings of portrayal rules such as OGC SLD/SE (https://portal.ogc.org/files/?artifact_id=22364 / https://portal.ogc.org/files/?artifact_id=16700) and Mapbox GL Styles (https://docs.mapbox.com/mapbox-gl-js/guides/styles/).
Functionality to evaluate the symbolizer specified by a style for specific conditions (e.g., feature properties and scale denominator), is also provided for integration within rendering engines.
The associated libCSCQL2 implements CQL2, as the CartoSym encodings extend the CQL2 language to define expressions used within rule selectors and symbolizer parameter values.
Support for performing spatial relation queries based on the Dimensionally Extended-9 Intersection Model (https://en.wikipedia.org/wiki/DE-9IM) is also integrated within a jointly developed libDE9IM open-source library, and support for OGC Simple Features as well as parsing and writing geometries defined in Well-Known Text (WKT) and GeoJSON is also provided by related open-source libraries.
These libraries are written in the eC programming language for native performance, with object-oriented bindings for libCartoSym planned for multiple programming languages including C, C++, Python, Java, Rust and JavaScript.
Acknowledgement
Financial support provided by GeoConnections, a national collaborative initiative led by Natural Resources Canada. GeoConnections supports the modernization of the Canadian Geospatial Data Infrastructure (CGDI). The CGDI is the collection of geospatial data, standards, policies, applications, and governance that facilitate its access, use, integration, and preservation.
Jérôme St-Louis is founder and CTO of Ecere, initiated the FOSS Ecere Cross-Platform SDK project (1996), designed the eC programming language (2004) and the GNOSIS geospatial software suite (2014). Jérôme is now releasing a number of GNOSIS components as open-source projects, including DGGAL, libCartoSym, libCQL2 and libDE9IM. Jérôme is co-chair of multiple OGC Standard Working Groups and co-editors of multiple OGC Standards, as well as an OSGeo charter member and active contributor to the open-source geospatial community.