Styling visual appearance for draw objects

From Maria GDK Wiki
Revision as of 13:50, 24 May 2022 by Tmd (talk | contribs) ()
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The style set for the visual appearance has three style categories: DrawObjects, SelectionFan and Tooltip. Each category has a set of predefined styles. The name of the value items and composite value items in the styles have specific meaning and cannot be changed. Changing the value of the value items on the other hand will change the appearance of the draw objects.

A complete style set for draw objects can be found here: Draw object complete style set

DrawObjects style category

This style category has several styles for controling the appeatance of the draw objects and the tools for interacting with the draw objects.

Styling draw object appearance

The main style which controls the appearance of the draw objects has some top level value items and several composite items.

Most of the value items shown bellow use variables to define the actual value to be used for the appearance of the draw object. This means that the value is retrieved from the fields of the draw object when the style is resolved for a draw object.

Some of the value items also have a factor attribute which is defined as the variable AlphaFactor. This factor value retrieved from the draw object's fields controls the opactity applied to the colors of the draw object.

The top level value items control the overall coloring of the draw objects:

<valueitem name="ColorScheme" value="Medium"/>
<valueitem name="OverrideColor" value=""/>
Name Description
ColorScheme Controls the colors used for MIL-STD-2525C objects and can be: Dark, Medium or Light
OverrideColor Used to override the color scheme for MIL-STD-2525C objects and can be: Black, White or DarkGray

The appearance of draw object lines, such as thickness and color, is controlled by the composite item Line:

<compositeitem name="Line">
  <valueitem name="Width" value="[LineWidth]" />
  <valueitem name="Color" value="[LineColor]" factor="[AlphaFactor]" />
  <valueitem name="ColorLight" value="[LineColor]" factor="[AlphaFactor]" />
  <valueitem name="ColorMedium" value="[LineColor]" factor="[AlphaFactor]" />
  <valueitem name="ColorDark" value="[LineColor]" factor="[AlphaFactor]" />
  <valueitem name="BeginScaleStep" value="1.0" />
  <valueitem name="EndScaleStep" value="1.0" />
  <valueitem name="DashStyle" value="[LineDashStyle]"/>
  <valueitem name="ShowLinePointText" value="[ShowLinePointText]"/>
</compositeitem>
Name Description
Width Thickness of draw object lines.
Color Color for generic draw object lines.
ColorLight Light color for MIL-STD-2525C draw object lines.
ColorMedium Medium color for MIL-STD-2525C draw object lines.
ColorDark Dark color for MIL-STD-2525C draw object lines.
BeginScaleStep The scaling value of the line figure (arrow etc.) at the beginning of the line.
EndScaleStep The scaling value of the line figure (arrow etc.) at the end of the line.
DashStyle Dash style for draw object lines. Values are as defined by .NET. For example the value "4,6" would give a line where each dash is 4 times the thickness of the line and each gap is 6 times the thickness of the line.
ShowLinePointText Indicates if the text associated with a line's points (the text must be set on the draw object's point primitives) should be shown. Values can be: true or false.

Some draw objects show text as part of the draw object. The composite item DefaultFont controls the appearance of the font for this text:

<compositeitem name="DefaultFont">
  <valueitem name="Bold" value="[BoldFont]"/>
  <valueitem name="Italic" value="[ItalicFont]"/>
  <valueitem name="Underline" value="[UnderlineFont]"/>
  <valueitem name="Strikethrough" value="[StrikethroughFont]"/>
  <valueitem name="Font" value="[DefaultFontName]"/>
  <valueitem name="Size" value="[DefaultFontSize]" factor="[ViewFontScale]"/>
  <valueitem name="Color" value="[DefaultFontForegroundColor]" factor="[AlphaFactor]"/>
  <valueitem name="BackgroundColor" value="[DefaultFontBackgroundColor]" factor="[AlphaFactor]"/>
  <valueitem name="MinFontSize" value="[MinFontSize]"/>
  <valueitem name="MinFontMapScale" value="[MinFontMapScale]"/>
  <valueitem name="MaxFontMapScale" value="[MaxFontMapScale]"/>
  <valueitem name="CustomFontScale" value="[CustomFontScale]"/>
</compositeitem>
Name Description
Bold Sets bold font. Values are true or false.
Italic Sets italic font. Values are true or false.
Underline Sets underline font. Values are true or false.
Strikethrough Sets strikethrough font. Values are true or false.
Font Font name.
Size Font size.
Color Font color.
BackgroundColor Color used as a background for the text to increase readability.
MinFontSize Minimum font size used to scale text when custom font scaling is enabled.
MinFontMapScale Minimum map scale used to scale text when custom font scaling is enabled.
MaxFontMapScale Maximum map scale used to scale text when custom font scaling is enabled.
CustomFontScale Enables custom font scaling and applies to generic objects. Values are true or false. If set to true the text will be scaled between MinFontSize at MinFontMapScale and the actual font size (Size) at MaxFontMapScale, where MinFontSize, MinFontMapScale, and MaxFontMapScale are field values of the generic object. If MinFontMapScale and MaxFontMapScale are 0 (not set), for generic objects other than Generic Text, the text will be scaled as normal untill MinFontSize is reached.

Some draw objects use a smaler font than the normal default font. Examples are the range text of Range Rings and ALT text on Alternating Traffic. The composite item SmallLabelFont controls the appearance of this font:

<compositeitem name="SmallLabelFont">
  <valueitem name="Font" value="Arial" />
  <valueitem name="Size" value="10.0" />
</compositeitem>
Name Description
Font Font name.
Size Font size.

Some draw objects have an echelon indicator representing the command level. A separate font is used for the echelon indicator and the composite item EchelonFont controls the appearance of this font:

<compositeitem name="EchelonFont">
  <valueitem name="Font" value="Arial" />
  <valueitem name="Size" value="24.0" />
</compositeitem>
Name Description
Font Font name.
Size Font size.

A few draw objects such as Generic Crosshairs use a separate font for the text associated with the draw object. The composite item LabelFont controls the appearance of this font:

<compositeitem name="LabelFont">
  <valueitem name="Font" value="Arial" />
  <valueitem name="Size" value="10.0" />
  <valueitem name="BackgroundColor" value="[DefaultFontBackgroundColor]" factor="[AlphaFactor]"/>
</compositeitem>
Name Description
Font Font name.
Size Font size.
BackgroundColor Color used as a background for the text to increase readability.

Generic draw objects that define an area can be filled with a pattern. The composite item Fill controls the appearance of the fill pattern:

<compositeitem name="Fill">
  <valueitem name="ForegroundColor" value="[FillForegroundColor]" factor="[AlphaFactor]" />
  <valueitem name="BackgroundColor" value="[FillBackgroundColor]" factor="[AlphaFactor]" />
  <valueitem name="Style" value="[FillStyle]"/>
</compositeitem>
Name Description
ForegroundColor Color of the fill pattern.
BackgroundColor Background color of the fill pattern.
Style Fill pattern, where values can be: None, Solid, BackwardDiagonal, ForwardDiagonal, Horizontal, Vertical, Cross, DiagonalCross

Generic polyarea and polyline draw objects can have a buffer around the draw object. The composite item Buffer controls the appearance of the buffer:

<compositeitem name="Buffer">
  <valueitem name="Width" value="[BufferLineWidth]" />
  <valueitem name="Color" value="[BufferLineColor]" factor="[AlphaFactor]" />
  <valueitem name="DashStyle" value="[BufferLineDashStyle]"/>
</compositeitem>
Name Description
Width Thickness of buffer line.
Color Color of buffer line.
DashStyle Dash style for buffer lines. Values are as defined by .NET. For example the value "4,6" would give a line where each dash is 4 times the thickness of the line and each gap is 6 times the thickness of the line.

Point symbol draw objects can have labels around the symbol. The layout of the individual labels follows the MIL-STD-2525C standard. The composite item Label controls the appearance of the labels:

<compositeitem name="Label">
  <valueitem name="Draw" value="[DrawLabel]"/>
  <valueitem name="DrawMovementIndicator" value="[DrawMovementIndicator]"/>
  <valueitem name="MovementIndicatorColor" value="[MovementIndicatorColor]" factor="[AlphaFactor]"/>
  <valueitem name="DrawOffsetLocationIndicator" value="[DrawOffsetLocationIndicator]"/>
  <valueitem name="OffsetLocationIndicatorColor" value="[OffsetLocationIndicatorColor]" factor="[AlphaFactor]"/>
  <valueitem name="Font" value="[LabelFontName]"/>
  <valueitem name="Bold" value="[LabelFontBold]"/>
  <valueitem name="Italic" value="[LabelFontItalic]"/>
  <valueitem name="Size" value="[LabelFontSize]"/>
  <valueitem name="Color" value="[LabelFontForegroundColor]" factor="[AlphaFactor]"/>
</compositeitem>
Name Description
Draw Sets the label visibility. Values are true or false.
DrawMovementIndicator Sets the movement indicator visibility. Values are true or false.
MovementIndicatorColor Color of the movement indicator.
DrawOffsetLocationIndicator Sets the offset location indicator visibility. Values are true or false.
OffsetLocationIndicatorColor Color of the offset location indicator.
Font Label font name.
Size Label font size.
Bold Sets bold label font. Values are true or false.
Italic Sets italic label font. Values are true or false.
Color Label font color.

It is also possible to override the MIL-STD-2525C layout of the labels and specify the layout in the composite item Label instead:

<compositeitem name="Label">
 
  <!-- The value items for MIL-STD-2525C labels must also 
       be included in addition to the items bellow -->
  
  <valueitem name="GenericLabel" value="[GenericLabel]" />
  <valueitem name="Separator" value="-" />
  <compositeitem name="LabelText1">
    <valueitem name="Fields" value="field1" />
    <valueitem name="Position" value="TopLeft" />
    <valueitem name="XOffset" value="0.0" />
    <valueitem name="YOffset" value="0.0" />
  </compositeitem>
  <compositeitem name="LabelText2">
    <valueitem name="Fields" value="field2,field3" />
    <valueitem name="Position" value="Bottom" />
    <valueitem name="XOffset" value="0.0" />
    <valueitem name="YOffset" value="0.0" />
  </compositeitem> 
</compositeitem>
Name Description
GenericLabel Sets genric labeling mode. Values are true or false. A value of true will enable generic labeling.
Separator Character used to separate several fields when multiple fields are combined into one label.
LabelText Defines a label item. Label composite items must start with the name LabelText. \ \ <WRAP leftalign>
Fields A comma separated list of draw object fields to show as the label.
Position Position of the label. Values are: Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight
XOffset Horizontal offset of the label from its position in pixels.
YOffset Vertical offset of the label from its position in pixels.
</WRAP>

The appearance of point symbol draw objects is controlled by the composite item Symbol:

<compositeitem name="Symbol">
  <valueitem name="Size" value="100.0" factor="[ViewSymbolScale]"/>
  <valueitem name="DynamicScale" value="true"/>
  <valueitem name="Grayscale" value="false"/>
  <valueitem name="Alpha" value="[AlphaFactor]"/>
  <valueitem name="DropShadow" value="false"/>
  <valueitem name="DropShadowColor" value="255,255,255,255"/>
</compositeitem>
Name Description
Size Symbol size in percentage. (The symbol size will be scaled by the view's symbol scale as well)
DynamicScale Sets if the symbol is scaled automatically according to the map scale. Values are true or false.
Grayscale Sets if the symbol is shown as gray scale. Values are true or false.
Alpha The symbol opacity. Values are between 0 and 1.
DropShadow Sets if the symbol should have a drop shadow. Values are true or false.
DropShadowColor The color for the drop shadow.

The composite item Unrelated contains styling elements that by definition are unrelated to a specific styling area:

<compositeitem name="Unrelated">
  <valueitem name="SimplifiedRenderingCutoffSize" value="[SimplifiedRenderingCutoffSize]" />
  <valueitem name="DrawOutline" value="[DrawOutline]" />
  <valueitem name="Smooth" value="[Smooth]" />
  <valueitem name="DefaultScaleStep" value="0.1"/>
</compositeitem>
Name Description
SimplifiedRenderingCutoffSize The minimum size (width or height) in pixels of the draw object's bounding box before simplified rendering is enabled.
DrawOutline Sets if the outline for draw objects are shown. Currently only applies to filled FanAreas. Values are true or false.
Smooth Sets if lines are rendered as smooth, meaning the line segments will be curved between the actual points to give the line a smooth look. Values are true or false.
DefaultScaleStep Sets the scale step used by the tool for scaling a draw object's text.

Highlight shape of selected objects

The appearance of selected objects can be controlled using style.

Example to change width of line objects when selected:

   <style>
      <statecondition key="Selected" scope="PerItem" state="Active"/>
      <compositeitem name="Line">
        <valueitem name="Width" value="[LineWidth]" factor="2.75" />
      </compositeitem>
   </style>

Mark draw objects

Styled marking can be used to highlight generic polylines, polyareas, ellipses and crosshairs. Marking is nearly always used in combination with a condition. The marks consist of one or more layers surrounding the geometry of the draw object. The basic structure is as follows:

    <style>
      <compositeitem name="Mark">
        <compositeitem name="Layer1">
          <valueitem name="DashStyle" value="Solid"/>
          <valueitem name="Color" value="255,192,0,255"/>
          <valueitem name="Width" value="2.0"/>
          <valueitem name="Offset" value="5"/>
          <valueitem name="Draw" value="true"/>
        </compositeitem>
        <compositeitem name="Layer2">
          <valueitem name="DashStyle" value="Solid"/>
          <valueitem name="Color" value="112,48,160,255"/>
          <valueitem name="Width" value="2.0"/>
          <valueitem name="Offset" value="5"/>
          <valueitem name="Draw" value="true"/>
        </compositeitem>
        <compositeitem name="Layer3">
          <valueitem name="DashStyle" value="Solid"/>
          <valueitem name="Color" value="0,176,80,255"/>
          <valueitem name="Width" value="2.0"/>
          <valueitem name="Offset" value="5"/>
          <valueitem name="Draw" value="true"/>
        </compositeitem>
      </compositeitem>
    </style>
Name Description
DashStyle Dash style for mark layer. Values are as defined by .NET. For example the value "4,6" would give a line where each dash is 4 times the thickness of the line and each gap is 6 times the thickness of the line.
Color Color for mark layer.
Width Thickness of mark layer.
Offset The distance in pixels from the preceding mark layer or draw object geometry for the first mark layer.
Draw Sets the mark layer visibility. Values are true or false.

Conditional styles for draw object appearance

Draw objects that have a standard identity, the threat posed by the draw object, have colors according to the standard identity.

Individual styles represent the four basic standard identity categories: unknown, friend, neutral, and hostile. The standard identity styles modify the color value items of the composite item Line from the original style. A field condition, that uses the StandardIdentity value in the draw object's fields, is used to identify the different standard identity categories.

The style for the hostile standard identity category:

<style>
  <fieldcondition field="StandardIdentity" op="In" value="Hostile,AssumedHostile,Joker,Faker,Suspect" /> 
  <compositeitem name="Line">
    <valueitem name="Color" value="255,0,0,255" factor="[AlphaFactor]" />
    <valueitem name="ColorLight" value="255,128,128,255" factor="[AlphaFactor]" />
    <valueitem name="ColorMedium" value="255,48,49,255" factor="[AlphaFactor]" /> 
    <valueitem name="ColorDark" value="200,0,0,255" factor="[AlphaFactor]"/>
  </compositeitem>
</style>

The style for the unknown standard identity category:

<style>
  <fieldcondition field="StandardIdentity" op="In" value="Unknown,Pending" />
  <compositeitem name="Line">
    <valueitem name="Color" value="255,255,0,255" factor="[AlphaFactor]" />
    <valueitem name="ColorLight" value="255,255,128,255" factor="[AlphaFactor]" />
    <valueitem name="ColorMedium" value="255,255,0,255" factor="[AlphaFactor]" />
    <valueitem name="ColorDark" value="225,220,0,255" factor="[AlphaFactor]" />
  </compositeitem>
</style>

The style for the neutral standard identity category:

<style>statndard identityfield="StandardIdentity" value="Neutral" />
  <compositeitem name="Line">
    <valueitem name="Color" value="0,128,0,255" factor="[AlphaFactor]" />
    <valueitem name="ColorLight" value="170,255,170,255" factor="[AlphaFactor]" />
    <valueitem name="ColorMedium" value="0,226,0,255" factor="[AlphaFactor]" />
    <valueitem name="ColorDark" value="0,160,0,255" factor="[AlphaFactor]" />
  </compositeitem>
</style>

The style for the friend standard identity category:

<style>
  <fieldcondition field="StandardIdentity" op="In" value="Friend,AssumedFriend" />
  <compositeitem name="Line">
    <valueitem name="Color" value="0,0,255,255" factor="[AlphaFactor]" />
    <valueitem name="ColorLight" value="128,224,255,255" factor="[AlphaFactor]" />
    <valueitem name="ColorMedium" value="0,168,220,255" factor="[AlphaFactor]" />
    <valueitem name="ColorDark" value="0,107,140,255" factor="[AlphaFactor]" />
  </compositeitem>
</style>

Draw objects that have a status, which refers to wether the draw object exists at its location or will in the future exist at that location, have a line style according to the status.

Individual styles represent the two status categories: present, and planned. The status styles modify the dash style value item of the composite item Line from the original style. A field condition, that uses the TacticalStatus value in the draw object's fields, is used to identify the different status categories.

The style for the present status:

<style>
  <fieldcondition field="TacticalStatus" value="PresentPosition" />
  <compositeitem name="Line">
    <valueitem name="DashStyle" value="Solid"/>
  </compositeitem>
</style>

The style for the planned, anticipated, suspected, and on order status:

<style>
  <fieldcondition field="TacticalStatus" op="In" value="Anticipated,OnOrder,Planned,Suspected" />
  <compositeitem name="Line">
    <valueitem name="DashStyle" value="3,3@0" />
  </compositeitem>
</style>

When draw objects get disabled, they get a gray appearance. A separate style is used for the disabled state and modify the line and fill colors, and sets a gray scale mode for symbols. A field condition, that uses the runtime field Disabled, is used to identify the disabled state:

<style>
  <fieldcondition field="runtime.Disabled" value="true"/>
  <compositeitem name="Line">
    <valueitem name="Color" value="127,127,127,127" />
    <valueitem name="ColorLight"  value="127,127,127,127" />
    <valueitem name="ColorMedium"  value="127,127,127,127" />
    <valueitem name="ColorDark"  value="127,127,127,127" />
  </compositeitem>

  <compositeitem name="Symbol">
    <valueitem name="Grayscale" value="true" />
  </compositeitem>
  
  <compositeitem name="Fill">
    <valueitem name="ForegroundColor" value="127,127,127,127" />
    <valueitem name="BackgroundColor" value="127,127,127,127" />
  </compositeitem>      
</style>

There is also a style that hides the labels of a point symbol draw object during map pan operations. It is recommended to have this style because it gives the system better performance during a map pan operation:

<style>
  <mapstatecondition op="Eq" value="Changing" />
  <compositeitem name="Label">
    <valueitem name="Draw" value="false"/>
  </compositeitem>
</style>

Styling draw object tool appearance

Maria GDK contains a set of tools for editing draw objects visually on the map. These tools range from object scaling and moving to adding and deleting the points of the draw object, and more. All of these tools use a style to control their appearance.

The composite item Tool controls the general appearance of all the tools:

<compositeitem name="Tool">
  <valueitem name="LineColor" value="0,0,0,255"  />
  <valueitem name="Width" value="1.0" />
  <valueitem name="HandleRadius" value="4.0"/>
  <valueitem name="HandleDistance" value="25.0" />
</compositeitem>
Name Description
LineColor Color of the tool lines.
Width Thickness of the tool lines.
HandleRadius Radius of the tool handles used to interact with the tool.
HandleDistance Lenght of handle for rotating a draw object.

The composite item ToolGeoDecoration controls the decorations that the tools display, such as text and dipsplacement:

<compositeitem name="ToolGeoDecoration">
  <valueitem name="Color" value="128,128,128,255"  />
  <valueitem name="BackgroundColor" value="255,255,255,127" />
  <valueitem name="Width" value="2.0" />
  <valueitem name="Font" value="Arial" />
  <valueitem name="Size" value="12.0" />
</compositeitem>
Name Description
Color Line and text color for geo decorations.
BackgroundColor Color used as a background for the text to increase readability.
Width Thickness of geo decoration lines.
Font Font name for geo decoration text.
Size Font size for geo decoration text.

The composite item PointSquareHandle controls the colors of the tool handles:

<compositeitem name="PointSquareHandle">
  <valueitem name="NonSelectedColor" value="245,245,245,255" />
  <valueitem name="NonSelectedHoverColor" value="255,255,255,255" />
  <valueitem name="SelectedColor" value="255,255,0,255" />
  <valueitem name="SelectedHoverColor" value="255,255,225,255"/>
</compositeitem>
Name Description
NonSelectedColor Color of the unselected tool handle.
NonSelectedHoverColor Color of the unselected tool handle when the mouse pointer is over the tool handle.
SelectedColor Color of the selected tool handle.
SelectedHoverColor Color of the selected tool handle when the mouse pointer is over the tool handle.

The composite item ScaleTool controls the text scaling tool:

<compositeitem name="ScaleTool">
  <valueitem name="Width" value="25.0" />
  <valueitem name="Height" value="8.0"/>
</compositeitem>
Name Description
Width Width of the text scale arrow.
Height Height of the text scale arrow.

The composite item Rotate controls the rotation tool handle colors:

<compositeitem name="Rotate">
  <valueitem name="Color" value="212,255,212,255" />
  <valueitem name="HoverColor" value="241,255,241,255"/>
</compositeitem>
Name Description
Color Color of the rotation tool handle.
HoverColor Color of the rotation tool handle when the mouse pointer is over the tool handle.

The composite item AddTool controls the tool handles for the add points tool:

<compositeitem name="AddTool">
  <valueitem name="Radius" value="3.0" />
  <valueitem name="NonSelectedColor" value="212,255,212,255"  />
  <valueitem name="NonSelectedHoverColor" value="241,255,241"  />
  <valueitem name="SelectedColor" value="212,255,212,255"/>
</compositeitem>
Name Description
Radius Radius of the tool handles used to interact with the tool.
NonSelectedColor Color of the unselected tool handle.
NonSelectedHoverColor Color of the unselected tool handle when the mouse pointer is over the tool handle.
SelectedColor Color of the selected tool handle.

SelectionFan style category

When multiple draw objects can be selected at the same point by clicking on the map, a selection fan is displayed with all the draw objects that can be selected. The appearance of this selection fan is controlled by a style.

The value items at the root level of the style control the appearance of the actual fan control used to display the draw objects:

<valueitem name="InnerFanBackgroundColor" value="255,255,255,0"/>
<valueitem name="OuterFanBackgroundColor" value="255,255,255,200"/>
<valueitem name="FanBackgroundColor" value="255,255,255,0"/>
<valueitem name="EmptySymbolColor" value="200,200,200,255"/>
<valueitem name="OuterFanOutlineColor" value="0,0,0,100"/>
<valueitem name="OuterOutlineThickness" value="1"/>
<valueitem name="MaxCount" value="10"/>  
<valueitem name="OutlineColor" value="0,0,0,100"/>
<valueitem name="OutlineThickness" value="2"/>
Name Description
InnerFanBackgroundColor The inner color of the background gradient color.
OuterFanBackgroundColor The outer color of the background gradient color.
FanBackgroundColor The center color of the selection fan.
EmptySymbolColor Color used for a draw object if no preview for it exists.
OuterFanOutlineColor The outer outline color.
OuterOutlineThickness Line thickness of outer outline.
OutlineColor The inner outline color.
OutlineThickness Line thickness of inner outline.
MaxCount Maximum number of objects that the fan can show. If more than maximum number of objects can be selected, the fan will not be shown. This is to prevent the fan from being overcrowded.

The composite item Selected controls the appearance of the selection rectangle for selected draw objects in the fan:

<compositeitem name="Selected">    
  <valueitem name="Color" value="255,255,0,255"/>
  <valueitem name="Thickness" value="4.0"/>
</compositeitem>
Name Description
Color Color of selection rectangle.
Thickness Thickness of selection rectangle.

The composite item Label controls the appearance of the label that can be shown for the draw objects in the fan:

<compositeitem name="Label">    
  <valueitem name="FontSize" value="10"/>
  <valueitem name="FontName" value="Verdana"/>
  <valueitem name="Bold" value="false"/>
  <valueitem name="Italic" value="false"/>
  <valueitem name="Color" value="50,50,50,155"/>
  <valueitem name="Background" value="255,255,255,127"/>        
  <valueitem name="Show" value="false"/>
  <valueitem name="Fields" value="Name"/>
  <valueitem name="FieldSeparator" value="-"/>
</compositeitem>
Name Description
FontSize Font size.
FontName Font name.
Bold Sets bold label font. Values are true or false.
Italic Sets italic label font. Values are true or false.
Color Font color.
Background Color used as a background for the text to increase readability.
Show Sets the label visibility. Values are true or false.
Fields A comma separated list of draw object fields to show as the label.
FieldSeparator Character used to separate several fields when multiple fields are combined into one label.

Tooltip style category

When the mouse pointer is over a draw object, a tooltip for the draw object will be shown. The appearance of this tooltip is controlled by a style.

The root level value items of the style controls the tooltip's appearance:

<valueitem name="ShowDelay" value="500"/>
<valueitem name="HideDelay" value="5000"/>
<valueitem name="TopBackgroundColor" value="255,255,255,255"/>
<valueitem name="BottomBackgroundColor" value="228,228,240,255"/>
<valueitem name="OutlineColor" value="0,0,0"/>
<valueitem name="OutlineThickness" value="1"/>
<valueitem name="FontColor" value="0,0,0"/>
<valueitem name="FontFamilyName" value="Segoe UI"/>
<valueitem name="FontSize" value="10"/>
Name Description
ShowDelay Delay in milliseconds before the tooltip is shown.
HideDelay Delay in milliseconds before the tooltip is hidden.
TopBackgroundColor The top color of the background gradient color.
BottomBackgroundColor The bottom color of the background gradient color.
OutlineColor The outline color.
OutlineThickness Line thickness of the outline.
FontColor Font color.
FontFamilyName Font name.
FontSize Font size.

The tooltip can have multiple lines of text where each line is defined by a composite item which starts with the name TooltipLine:

<compositeitem name="TooltipLine1">
  <valueitem name="Label" value="Name:"/>
  <valueitem name="Fields" value="Name"/>
  <valueitem name="FieldSeparator" value="-"/>
</compositeitem>
Name Description
Label An optional label to show for the tooltip line.
Fields A comma separated list of draw object fields to show as the tooltip line.
FieldSeparator Character used to separate several fields when multiple fields are combined into one tooltip line.

Clustering style category

Draw object symbol clustering can be used to group draw object symbols based on six algorithms:

  • Grid clustering which divides the view into a grid and creates a cluster of all draw object symbols within a cell.
  • Sequential clustering which starts with one draw object symbol and clusters all draw object symbols around it which are within a range, then it moves on to the next unclustered draw object symbol and does the same.
  • Combined clustering which combines sequential and grid clustering. If the draw object symbol count in the current view is less than 10000 sequential clustering is used otherwise grid clustering is used.
  • Group clustering which groups draw object symbols based on a parent child relationship between draw object symbols.
  • Priority clustering which use sequential clustering and then sorts the clustered draw object symbols based on priority and shows only the draw object symbol with highest priority.
  • Symbol clustering which groups draw object symbols based on symbol type/code and the use sequential clustering to cluster items.

The appearance of the clusters is controlled by the following style:

<stylecategory name="DrawObjectClustering"/>
  <style>  
    <valueitem name="MinCount" value="2"/>
    <valueitem name="CanCluster" value="true"/>
    <valueitem name="ParentFieldID" value="GroupParent"/>
    <valueitem name="IDFieldID" value="id"/>  
    <valueitem name="BackgroundColor" value="0,128,255,100"/>
    <valueitem name="OutlineColor" value="0,0,0,150"/>
    <valueitem name="OutlineThickness" value="2"/>
    <valueitem name="OutlineColorAboveMaxCount" value="0,0,0,150"/>
    <valueitem name="OutlineThicknessAboveMaxCount" value="1"/>
    <valueitem name="BoundsBufferWidth" value="10"/>      
    <valueitem name="ShowSymbolLocation" value="true"/>
    <valueitem name="SymbolLocationRadius" value="1.0"/>
    <valueitem name="SymbolLocationColor" value="0,0,0,200"/>
    <valueitem name="SymbolAsSymbolLocation" value="false"/>
    <valueitem name="FontFamilyName" value="Segoe UI"/>
    <valueitem name="FontColor" value="255,255,255,255"/>
    <valueitem name="FontOutlineColor" value="0,0,0,255"/>
    <valueitem name="FontSize" value="11"/>           
    <valueitem name="ShowClusterCount" value="true"/>
    <valueitem name="ShowSymbol" value="true"/>
    <valueitem name="ShowSymbolSelection" value="false"/>
    <valueitem name="PriorityFieldID" value="Priority"/>
    <valueitem name="SymbolCountThreshold" value="15"/>
    <valueitem name="SymbolAutoSelectBackgroundColor" value="true"/>
    <valueitem name="SymbolAutoSelectFontColors" value="true"/>
    <valueitem name="SymbolCountPosition" value="TopRight"/>
    <valueitem name="SymbolCountOffsetX" value="5"/>
    <valueitem name="SymbolCountOffsetY" value="-5"/>
  </style>
</stylecategory>
Name Description
MinCount Minimum number of draw object symbols in a cluster before the draw object symbols are clustered.
CanCluster Sets if the draw object symbols can be clustered. Values are true or false.
ParentFieldID Name of the field used to specify the parent draw object symbol for a cluster when Group clustering is used.
IDFieldID If desired specifies a different ID field name than the default for the draw object symbol ID when Group clustering is used.
BackgroundColor The background color.
OutlineColor The outline color.
OutlineThickness Line thickness of outline.
OutlineColorAboveMaxCount The outline color for clusters where the cluster's fan cannot be displayed because the number of draw object symbols exceed the maximum number of draw object symbols for the fan. The maximum count can be set on the Selection fan style.
OutlineThicknessAboveMaxCount Line thickness of the outline for clusters where the cluster's fan cannot be displayed because the number of draw object symbols exceed the maximum number of draw object symbols for the fan. The maximum count can be set on the Selection fan style.
BoundsBufferWidth The minimum number of pixels between the draw object symbols and the boundary line for Bounds clustering.
ShowSymbolLocation Sets if the draw object symbol or location (colored circle) for clustered draw object symbols is displayed for Bounds clustering. Values are true or false.
SymbolLocationRadius The radius in pixels for draw object symbols and draw object symbol locations (colored circle) for Bounds clustering.
SymbolLocationColor The color of the draw object symbol locations (colored circle) for Bounds clustering.
SymbolAsSymbolLocation Sets if the draw object symbol for clustered draw object symbols is displayed instead of their location (colored circle) for Bounds clustering. Values are true or false.
FontFamilyName Font name for clustering count text.
FontColor Font color for clustering count text.
FontOutlineColor Font outline color for clustering count text.
FontSize Font size for clustering count text.
ShowClusterCount Sets if the draw object symbol count of a cluster is displayed at the center of the cluster. Values are true or false.
ShowSymbol Sets if a draw object symbol is displayed at the center of the cluster. Values are true or false.
ShowSymbolSelection Sets if selected draw object symbols should be displayed at their position even though they are clustered. Values are true or false.
PriorityFieldID Specifies the field name that contains the priority used for priority clustering.
SymbolCountThreshold The threshold (max count) before "threshold+" is shown for count for symbol clustering.
SymbolAutoSelectBackgroundColor Automatically use the most dominant symbol color as background for count for symbol clustering. Values are true or false.
SymbolAutoSelectFontColors Automatically set font color and font outline color, black/white or white/black, based on brightness of symbol for symbol clustering. Values are true or false.
SymbolCountPosition The anchor for symbol clustering count: TopRight, TopLeft, BottomLeft, BottomRight.
SymbolCountOffsetX The offset in X direction from anchor position for symbol clustering count.
SymbolCountOffsetY The offset in Y direction from anchor position for symbol clustering count.

Draw object clustering and clustering state

Each clustering algorithm has a state associated with it (this is set on the draw object layer in the application code). When a state for a clustering algorithm is set the styling can be conditionally changed for that algorithm.

The six states are:

  • drawobject.groupclustering Group clustering state
  • drawobject.gridclustering Grid clustering state
  • drawobject.sequentialclustering Sequential clustering state
  • drawobject.combinedclustering Combined clustering state
  • drawobject.priorityclustering Priority clustering state
  • drawobject.symbolclustering Symbol clustering state

As an example when the grid clustering state is set the following style will change the background color to red for Grid clustering.

<style>
  <statecondition key="drawobject.gridclustering" scope="PerItem" state="Active" />
  <valueitem name="BackgroundColor" value="255,0,0,100" />
</style>