Class TLspMilitarySymbologyLayerBuilder
java.lang.Object
com.luciad.view.lightspeed.layer.ALspLayerBuilder
com.luciad.symbology.view.lightspeed.TLspMilitarySymbologyLayerBuilder
Builder for layers capable of visualizing
APP-6 shapes
and
MIL-STD-2525 shapes
. It behaves the same as TLspAPP6ALayerBuilder
and
TLspMS2525bLayerBuilder
but allows you to mix different symbology standards in the same layer.
Built layers contain two paint representations that can be controlled separately:
TLspPaintRepresentation.BODY
: the main bodyTLspPaintRepresentation.LABEL
: the labels
APP-6 line
and MIL-STD-2525 line
symbols, the
body visualisation depends on the symbol. It typically consists of a line or area.
Basic customization of the visualisation is possible using TLcdMilitarySymbolStyle
.
If the domain object implements ILcdStyledMilitarySymbol
, then the style will be retrieved from it.
Otherwise, a default style
is used.
Other customization of the visualisation is possible by setting a custom body
or label
styler.
The default styler submits TLspAPP6ASymbolStyle
or TLspMS2525bSymbolStyle
for domain objects
that implement ILcdAPP6ACoded
/ILcdStyledMilitarySymbol
or ILcdMS2525bCoded
/ILcdStyledMilitarySymbol
, respectively.
Replacing the default styler with a custom one allows symbology to be used on domain objects which do not
implement these interfaces, as well as making all sorts of other customizations possible
(e.g. additional decorations or labels on symbols).- Since:
- 2023.0
-
Method Summary
Modifier and TypeMethodDescriptionbodyEditable
(boolean aEditable) Sets whether the body of the symbols should be editable.bodyMapScaleRange
(TLcdDimensionInterval<TLcdMapScale> aBodyScaleRange) Sets the scale range for the body of the layer in unitless map scale ratios.bodyStyler
(TLspPaintState aPaintState, ILspStyler aStyler) Sets the given body styler for the given paint state.build()
Creates and returns a new military symbology layer based on the current parameters of this builder.culling
(boolean aUseCulling) Sets whether objects outside the visible view portion are culled and not painted.defaultStyle
(TLcdMilitarySymbolStyle aDefaultStyle) Sets the default symbol style that will be used if a domain object does not implementILcdStyledMilitarySymbol
.filter
(ILcdDynamicFilter aFilter) Sets a filter that will be used to filter objects to prevent them from being painted by the layer.Sets the icon of the layer.iconProvider
(ILcdObjectIconProvider aIconProvider) Overrides the default icon provider for non-line symbols.Sets the label of the layer.labelMapScaleRange
(TLcdDimensionInterval<TLcdMapScale> aLabelScaleRange) Sets the scale range for the labels of the layer in unitless map scale ratios.labelStyler
(TLspPaintState aPaintState, ILspStyler aStyler) Sets the given label styler for the given paint state.layerStyle
(TLspLayerStyle aLayerStyle) Set a layer style to be used during the rendering of the layer.layerType
(ILspLayer.LayerType aLayerType) Sets the layer type of the layer.Sets the model of the layer.objectViewMargin
(double aObjectViewMargin) Sets the largest possible difference (in pixels) between an object's model bounds and its painted representation's bounds that should be taken into account.objectWorldMargin
(double aObjectWorldMargin) Sets the largest possible difference (in meters) between an object's model bounds and its painted representation's bounds that should be taken into account.selectable
(boolean aSelectable) Sets whether the symbols should be selectable.Methods inherited from class com.luciad.view.lightspeed.layer.ALspLayerBuilder
getIcon, getLabel, getLayerStyle, getLayerType, getModel
-
Method Details
-
newBuilder
- Returns:
- a new layer builder with selection and editing of symbols enabled and with no editing and decluttering for labels
-
build
Creates and returns a new military symbology layer based on the current parameters of this builder.- Specified by:
build
in classALspLayerBuilder
- Returns:
- a new military symbology layer
-
bodyStyler
Sets the given body styler for the given paint state. The styler can specify aTLspAPP6ASymbolStyle
orTLspMS2525bSymbolStyle
to paint the object as an APP6 or MS2525 symbol, respectively. The styler should specify anILcdAPP6AShape
orILcdMS2525bShape
as geometry to get the visualization as specified by the standard. OtherILcdShape
's are also supported as geometry for most symbols. You can also specify the following styles to paint custom geometry or decorations:TLspFillStyle
: can be applied to closed shapes such as circles or polygonsTLspLineStyle
: can be applied to closed and non-closed shapes such as arcs and polylinesTLspComplexStrokedLineStyle
: can be applied to closed and non-closed shapes such as arcs and polylinesTLspWorldSizedLineStyle
: can be applied to closed and non-closed shapes such as arcs and polylinesTLspIconStyle
: can be applied to point shapes and point listsTLsp3DIconStyle
: can be applied to point shapes and point listsTLspVerticalLineStyle
: can be applied to point shapes and point lists
- Parameters:
aPaintState
- the paint state for which to set the body styleraStyler
- the new body styler for the layer- Returns:
this
-
labelStyler
public TLspMilitarySymbologyLayerBuilder labelStyler(TLspPaintState aPaintState, ILspStyler aStyler) Sets the given label styler for the given paint state. The styler can specify aTLspAPP6ASymbolStyle
orTLspMS2525bSymbolStyle
to paint the object as an APP6 or MS2525 symbol, respectively. The styler should specify anILcdAPP6AShape
orILcdMS2525bShape
as geometry to get the visualization as specified by the standard. OtherILcdShape
's are also supported as geometry for most symbols. You can also specify the following styles to paint custom labels:TLspTextStyle
to get text with a specific font, font color, size, halo etc.TLspIconStyle
to get custom images.ALspLabelTextProviderStyle
to specify which text to use (default istoString()
). See alsoTLspDataObjectLabelTextProviderStyle
.TLspLabelBoxStyle
to specify fill color or framesTLspLabelOpacityStyle
to specify the opacity and modulation color.TLspPinLineStyle
to draw pins for the labels (seeTLspLabelPainter
)
- Parameters:
aPaintState
- the paint state for which to set the label styleraStyler
- the new label styler for the layer- Returns:
this
-
defaultStyle
Sets the default symbol style that will be used if a domain object does not implementILcdStyledMilitarySymbol
.- Parameters:
aDefaultStyle
- The default style- Returns:
- this builder
- Since:
- 2024.0
-
iconProvider
Overrides the default icon provider for non-line symbols.- Parameters:
aIconProvider
- The new icon provider- Returns:
- this builder
-
layerType
Description copied from class:ALspLayerBuilder
Sets the layer type of the layer. The default value isILspLayer.LayerType.EDITABLE
.- Overrides:
layerType
in classALspLayerBuilder
- Parameters:
aLayerType
- the layer type- Returns:
- this builder
- See Also:
-
bodyEditable
Sets whether the body of the symbols should be editable.- Parameters:
aEditable
- whether the body of the symbols should be editable- Returns:
- this builder
-
bodyMapScaleRange
public TLspMilitarySymbologyLayerBuilder bodyMapScaleRange(TLcdDimensionInterval<TLcdMapScale> aBodyScaleRange) Sets the scale range for the body of the layer in unitless map scale ratios. This property defines a range of scales in which the bodies of the layer are visible. By default, no scale range is used, meaning that all bodies are visible.- Parameters:
aBodyScaleRange
- the scale range for the body of the layer- Returns:
this
-
culling
Sets whether objects outside the visible view portion are culled and not painted. Enabling culling restricts the objects that are painted to those that (approximately) overlap with the view. This typically reduces the memory usage and increases the frame rate. However because culling also introduces an additional overhead, you may get better performance by disabling it for either very dynamic layers or layers with only a small amount of objects.- Parameters:
aUseCulling
- whether the layer should use culling or not- Returns:
- this builder
-
filter
Sets a filter that will be used to filter objects to prevent them from being painted by the layer. No filter is set by default.- Parameters:
aFilter
- the filter- Returns:
this
-
icon
Description copied from class:ALspLayerBuilder
Sets the icon of the layer. The default value isnull
.- Overrides:
icon
in classALspLayerBuilder
- Parameters:
aIcon
- the icon- Returns:
- this builder
- See Also:
-
layerStyle
Description copied from class:ALspLayerBuilder
Set a layer style to be used during the rendering of the layer.TLspLayerStyle
is used to style the layer as a whole. Layer style can for example modify the transparency of a layer. Also, layer style can be modified after building the layer by callingILspLayer.setLayerStyle(TLspLayerStyle)
.- Overrides:
layerStyle
in classALspLayerBuilder
- Parameters:
aLayerStyle
- the layer style. Must not benull
. If you want to set the default layer style, setTLspLayerStyle.newBuilder().build()
- Returns:
- this
- See Also:
-
label
Description copied from class:ALspLayerBuilder
Sets the label of the layer. This is a short textual representation for it, often used to represent the layer to end-users. The default value isnull
.- Overrides:
label
in classALspLayerBuilder
- Parameters:
aLabel
- the label- Returns:
- this builder
- See Also:
-
labelMapScaleRange
public TLspMilitarySymbologyLayerBuilder labelMapScaleRange(TLcdDimensionInterval<TLcdMapScale> aLabelScaleRange) Sets the scale range for the labels of the layer in unitless map scale ratios. This property defines a range of scales in which the labels of the layer are visible. By default, no scale range is used, meaning that all labels are visible.- Parameters:
aLabelScaleRange
- the scale range for the labels of the layer- Returns:
this
-
model
Description copied from class:ALspLayerBuilder
Sets the model of the layer. The default value isnull
.- Overrides:
model
in classALspLayerBuilder
- Parameters:
aModel
- a model- Returns:
- this builder
- See Also:
-
selectable
Sets whether the symbols should be selectable.- Parameters:
aSelectable
- whether the symbols should be selectable- Returns:
- this builder
-
objectViewMargin
Sets the largest possible difference (in pixels) between an object's model bounds and its painted representation's bounds that should be taken into account. This value is used when determining what objects are visible (ifculling
is enabled). It ensures, for example, that a model element is still painted if its visual representation falls inside the view, but its model bounds do not. If for example view-sized icons are used to represent points on the map, the icon could be 16 by 16 pixels, whereas the object itself is a point, having a zero size. Depending on where the point is located in the icon, the required margin for this example can be up to 16 pixels. The drawback of setting a too large value is a performance loss. The drawback of setting a too small value is that objects (e.g. icons) disappear when they are located partly outside the view. You can also configure amaximum distance in meters
. The default value is32
.- Parameters:
aObjectViewMargin
- the maximum difference (in pixels)- Returns:
this
-
objectWorldMargin
Sets the largest possible difference (in meters) between an object's model bounds and its painted representation's bounds that should be taken into account. This value is used when determining what objects are visible (ifculling
is enabled). It ensures, for example, that a model element is still painted if its visual representation falls inside the view, but its model bounds do not. If for example circles are used to represent points on the map, the circle could have a radius of 1km, whereas the object itself is a point, having a zero size. The required margin for this example is 1000 meters. The drawback of setting a too large value is a performance loss. The drawback of setting a too small value is that objects (e.g. icons) disappear when they are located partly outside the view. You can also configure amaximum distance in pixels
. The default value is0
.- Parameters:
aObjectWorldMargin
- the maximum difference in meters- Returns:
this
-