opengeospatial / styles-and-symbology

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

Extending SymCore for generic expressions and symbolizer properties #10

Open jerstlouis opened 2 years ago

jerstlouis commented 2 years ago

Defining a conceptual model, logical model and encodings applicable for styling any type of data, including types of expressions for use within selectors and symbolizer parameter values, as well as generic symbolizer properties.

The conceptual aspects of these be could defined as part of the SymCore standard itself, but in separate conformance classes from the minimal Core, making expressions, selectors and symbolizers less abstract concepts (but remaining at both the conceptual level, and not tying the specification to any particular type of data).

Expressions extensions

Most of these have a direct mapping to CQL2 conformance classes, and CQL2 could be used in some of the encodings for defining selectors and parameter values expressions.

Extensions for basic expressions with support for:

Support for referencing the following as part of an expression for a selector or parameter value:

More advanced expressions with support for:

Symbolizer extensions

chris-little commented 2 years ago

@jerstlouis How about adding to the symbolizer extensions persistence/duration? An example is the classic weather map symbol for a lightning strike - fades away after a few minutes as irrelevant. It is relevant for the first few minutes, as the next one could be nearby.

I suppose this is moving in the direction of dynamic or transient features.

jerstlouis commented 2 years ago

@chris-little I think related aspects are being discussed in #7. If a symbol fades away, it seems to imply that the visualization time is changing, and this may be covered by the visibility property combined with the temporal operators, together with the temporal domain of the coverage or vector feature (possibly indicated in a property in the case of the vector feature, or e.g. the new when attribute from Features & Geometry JSON). Plus blending effects by the renderer if smooth fading is desired.

chris-little commented 2 years ago

@jerstlouis So this highlights the need for some explicit examples, that sit outside the traditional comfort zone of paper maps. I usually think of a visibiility property to be yes/no or perhaps with some alpha blending

jerstlouis commented 2 years ago

@chris-little My own comfort zone is quite outside paper maps since we do mostly 3D visualization :)

Here is an explicit example of how this could be defined (this may be close to working in pratice in our implementation):

#lightning_strikes
{
   markers = [ Image { "lightning.png", tint = yellow } ];
   visibility = abs(viz.time - rec.time) < 5;
   opacity = (5 - abs(viz.time - rec.time)) / 5.0;
}