Symbology Reference¶
osgEarth renders features and annotations using stylesheets. This document lists all the symbol properties available for use in a stylesheet. Not every symbol is applicable to every situation; this is just a master list.
Jump to a symbol:
Developer Note:
*In the SDK, symbols are in the
osgEarth::Symbology
namespace, and each symbol class is in the formAltitudeSymbol
for example. Properties below are as they appear in the earth file; in the SDK, properties are available via accessors in the formLineSymbol::strokeWidth()
etc.
Value Types¶
These are the basic value types. In the symbol tables on this page, each property includes the value type in parantheses following its description.
- float
Floating-point number
- float with units
Floating-point number with unit designator, e.g. 20px (20 pixels) or 10m (10 meters)
- HTML_Color
Color string in hex format, as used in HTML; in the format #RRGGBB or #RRGGBBAA. (Example: #FFCC007F)
- integer
Integral number
- numeric_expr
Expression (simple or JavaScript) resolving to a number
- string
Simple text string
- string_expr
Expression (simple or JacaScript) resolving to a text string
- uri_string
String denoting a resource location (like a URL or file path). URIs can be absolute or relative; relative URIs are always relative to the location of the referrer, i.e. the entity that requested the resource. (For example, a relative URI within an earth file will be relative to the location of the earth file itself.)
Geometry¶
Basic geometry symbols (SDK: LineSymbol
, PolygonSymbol
, PointSymbol
)
control the color and style of the vector data.
Property |
Description |
Value(s) |
---|---|---|
fill |
Fill color for a polygon. |
HTML color |
stroke |
Line color (or polygon outline color,
if |
HTML color |
stroke-width |
Line width |
float with units |
stroke-min-pixels |
Minimum rendering width; Prevents a
line from getting thinner than this
value in pixels. Only applies when
the |
float (pixels) |
stroke-tessellation |
Number of times to subdivide a line |
integer |
stroke-linejoin |
Join style for polygonized lines.
Only applies with |
miter, round |
stroke-linecap |
Cap style for polygonized lines.
Only applies with |
square, flat, round |
stroke-rounding-ratio |
For joins and caps that are set to
|
float (0.4) |
stroke-stipple-pattern |
Stippling pattern bitmask. Each set bit represents an “on” pixel in the pattern. |
integer (65535) |
stroke-stipple-factor |
Stipple factor for pixel-width lines. Number of times to repeat each bit in the stippling pattern |
integer (1) |
stroke-crease-angle |
When outlining extruded polygons, only draw a post outline if the angle between the adjoining faces exceeds this value. This has the effect of only outlining corners that are sufficiently “sharp”. |
float degrees (0.0) |
point-fill |
Fill color for a point. |
HTML color |
point-size |
Size for a GL point geometry |
float (1.0) |
Altitude¶
The altitude symbol (SDK: AltitudeSymbol
) controls a feature’s interaction with
the terrain under its location.
Property |
Description |
---|---|
altitude-clamping |
|
altitude-technique |
When
|
altitude-binding |
Granulatiry at which to sample the terrain when
|
altitude-resolution |
Elevation data resolution at which to sample terrain height when
|
altitude-offset |
Vertical offset to apply to geometry Z |
altitude-scale |
Scale factor to apply to geometry Z |
Tip: You can also use a shortcut to activate draping or GPU clamping; set altitude-clamping
to either terrain-drape
or terrain-gpu
.
Extrusion¶
The extrusion symbol (SDK: ExtrusionSymbol
) directs osgEarth to create extruded
geometry from the source vector data; Extrusion turns a 2D vector into a 3D shape.
Note: The simple presence of an extrusion property will enable extrusion.
Property |
Description |
---|---|
extrusion-height |
How far to extrude the vector data (numeric-expr) |
extrusion-flatten |
Whether to force all extruded vertices to the same Z value (bool).
For example, if you are extruding polygons to make 3D buildings,
setting this to |
extrusion-wall-gradient |
Factor by which to multiply the |
extrusion-wall-style |
Name of another style in the same stylesheet that osgEarth should apply to the walls of the extruded shape. (string) |
extrusion-roof-style |
Name of another style in the same stylesheet that osgEarth should apply to the roof of the extruded shape. (string) |
Skin¶
The skin symbol (SDK: SkinSymbol
) applies texture mapping to a geometry, when applicable.
(At the moment this only applies to extruded geometry.)
Property |
Description |
---|---|
skin-library |
Name of the resource library containing the skin(s) |
skin-tags |
Set of strings (separated by whitespace containing one or more
resource tags. When selecting a texture skin to apply, osgEarth
will limit the selection to skins with one of these tags. If you
omit this property, all skins are considered. For example, if you
are extruding buildings, you may only want to consider textures
with the |
skin-tiled |
When set to |
skin-object-height |
Numeric expression resolving to the feature’s real-world height (in meters). osgEarth will use this value to narrow down the selection to skins appropriate to that height (i.e., skins for which the value falls between the skin’s min/max object height range. (numeric-expr) |
skin-min-object-height |
Tells osgEarth to only consider skins whose minimum object height is greater than or equal to this value. (numeric-expr) |
skin-max-object-height |
Tells osgEarth to only consider skins whose maximum object height is less than or equal to this value. (numeric-expr) |
skin-random-seed |
Once the filtering is done (according to the properties above, osgEarth determines the minimal set of appropriate skins from which to choose and chooses one at random. By setting this seed value you can ensure that the same “random” selection happens each time you run the appplication. (integer) |
Icon¶
The icon symbol (SDK: IconSymbol
) describes the appearance of 2D icons.
Icons are used for different things, the most common being:
Point model substitution - replace geometry with icons
Place annotations
Property |
Description |
---|---|
icon |
URI of the icon image. (uri-string) |
icon-library |
Name of a resource library containing the icon (optional) |
icon-placement |
For model substitution, describes how osgEarth should replace geometry with icons:
|
icon-density |
For |
icon-scale |
Scales the icon by this amount (float) |
icon-heading |
Rotates the icon along its central axis (float, degrees) |
icon-declutter |
Activate decluttering for this icon. osgEarth will attempt to automatically show or hide things so they don’t overlap on the screen. (boolean) |
icon-align |
Sets the icon’s location relative to its anchor point. The valid values are in the form “horizontal-vertical”, and are:
|
icon-random-seed |
For random placement operations, set this seed so that the randomization is repeatable each time you run the app. (integer) |
icon-occlusion-cull |
Whether to occlusion cull the text so they do not display when line of sight is obstructed by terrain |
icon-occlusion-cull-altitude |
The viewer altitude (MSL) to start occlusion culling when line of sight is obstructed by terrain |
Model¶
The model symbol (SDK: ModelSymbol
) describes external 3D models.
Like icons, models are typically used for:
Point model substitution - replace geometry with 3D models
Model annotations
Property |
Description |
---|---|
model |
URI of the 3D model (uri-string). Use this OR the
|
model-library |
Name of a resource library containing the model. Use this OR
the |
model-placement |
For model substitution, describes how osgEarth should replace geometry with models:
|
model-density |
For |
model-scale |
Scales the model by this amount along all axes (float) |
model-heading |
Rotates the about its +Z axis (float, degrees) |
icon-random-seed |
For random placement operations, set this seed so that the randomization is repeatable each time you run the app. (integer) |
Render¶
The render symbol (SDK: RenderSymbol
) applies general OpenGL rendering settings as well
as some osgEarth-specific settings that are not specific to any other symbol type.
Property |
Description |
---|---|
render-depth-test |
Enable or disable GL depth testing. (boolean) |
render-lighting |
Enable or disable GL lighting. (boolean) |
render-depth-offset |
Enable or disable Depth Offseting. Depth offsetting is a GPU technique that modifies a fragment’s depth value, simulating the rendering of that object closer or farther from the viewer than it actually is. It is a mechanism for mitigating z-fighting. (boolean) |
render-depth-offset-min-bias |
Sets the minimum bias (distance-to-viewer offset) for depth offsetting. If is usually sufficient to set this property; all the others will be set automatically. (float, meters) |
render-depth-offset-max-bias |
Sets the minimum bias (distance-to-viewer offset) for depth offsetting. |
render-depth-offset-min-range |
Sets the range (distance from viewer) at which to apply the minimum depth offsetting bias. The bias graduates between its min and max values over the specified range. |
render-depth-offset-max-range |
Sets the range (distance from viewer) at which to apply the maximum depth offsetting bias. The bias graduates between its min and max values over the specified range. |
Text¶
The text symbol (SDK: TextSymbol
) controls the existance and appearance of text labels.
Property |
Description |
---|---|
text-fill |
Foreground color of the text (HTML color) |
text-size |
Size of the text (float, pixels) |
text-font |
Name of the font to use (system-dependent). For example, use “arialbd” on Windows for Arial Bold. |
text-halo |
Outline color of the text; Omit this propery altogether for no outline. (HTML Color) |
text-halo-offset |
Outline thickness (float, pixels) |
text-align |
|
text-layout |
|
text-content |
The actual text string to display (string-expr) |
text-encoding |
|
text-declutter |
Activate decluttering for this icon. osgEarth will attempt to automatically show or hide things so they don’t overlap on the screen. (boolean) |
text-occlusion-cull |
Whether to occlusion cull the text so they do not display when line of sight is obstructed by terrain |
text-occlusion-cull-altitude |
The viewer altitude (MSL) to start occlusion culling when line of sight is obstructed by terrain |
Coverage¶
The coverage symbol (SDK: CoverageSymbol
) controls how a feature is rasterized into
coverage data with discrete values.
Property |
Description |
---|---|
coverage-value |
Expression resolving to the floating-point value to encode. |