opengeospatial / styles-and-symbology

OGC Styles & Symbology Standards
Other
11 stars 6 forks source link

Define abstract selector and expressions concept in SymCore #5

Open jerstlouis opened 2 years ago

jerstlouis commented 2 years ago

We discussed introducing an abstract concept of a selector and expressions in SymCore.

Both Selectors and ParameterValues would make use of Expressions. A Selector is an Expression (simple or complex) resolving to true or false, deciding whether a PortrayalRule is applied or not.

Perhaps a concrete type of selector or expression could be defined to "select" which (data) layers (e.g. feature type or coverage) a particular PortrayalRule applies to.

jerstlouis commented 2 years ago

We should also decide whether conformance classes for more generic types of expressions could be defined in SymCore, e.g. comparison and arithmetic operators.

These more concrete (but still conceptual) aspects are discussed in #10.

jerstlouis commented 1 year ago

SWG 2022-11-03: Agreed today to start working on editing the Core conformance class of SymCore to include selectors and expressions covering the full set of capabilities of CQL2: Basic conformance class, plus the System Identifiers concept for LayerIDs and Scale Denominators (unless we think that Scale selection should be a separate conformance class?). It should also clarify the limits to how ParameterValues can be used in Core.

Also to include basic Symbolizer properties applying to any type of data being styled: opacity, visibility and zOrder. And describe how additional conformance classes can also add properties to the Symbolizer class, as well as additional mechanism on how values can be set for those properties (e.g., ParameterValues).

We will discuss the zOrder concept (related to SymbolizerLevel extension of 2D Feature Type Style document) in more details in person at the Web Mapping Code Sprint in Brussels.

Look to bring in any related requirements from draft 2D Feature Type Style document:

ScaledRule ScaledRuleExtension --> Selector + SystemIDs visualization.scaleDenominator FilteredRule --> Selector Rule/Filter --> StylingRule

Rendering extensions ~ SymbolizerLevel extension -- zOrder, rendering passes (e.g., labels on top, main stroke/centerline/casing)

Move capabilities outside the scope of this to separate sections .adoc files for other conformance classes (group multiple conformance classes together in 1 section .adoc file if they are very small and related to each other).

In section 2-conformance, list and summarize the conformance classes, following method used in Tiles and Processes - Part 3 with the following high level groupings:

I believe with the current model is issue has essentially merged with #10, with the exception that the Expressions support is limited (comparisons are included, but not arithmetic operators), and we will file separate issues for the conformance classe defining more advanced expressions and usage of them anywhere as ParameterValues.