public static final class FeatureCanvas.IconDrawCommand extends Object implements AutoCloseable
Modifier and Type | Method and Description |
---|---|
FeatureCanvas.IconDrawCommand |
anchor(Geometry anchor)
Sets the anchor of the icon.
|
void |
close() |
FeatureCanvas.IconDrawCommand |
draped(boolean draped)
Indicates whether or not the icon should be draped on top of the terrain.
|
protected void |
finalize() |
FeatureCanvas.IconDrawCommand |
icon(IIcon icon)
Specifies the icon to draw.
|
FeatureCanvas.IconDrawCommand |
inMeters()
Interpret the icon size and
offset properties as meters instead of pixels. |
FeatureCanvas.IconDrawCommand |
occlusionMode(OcclusionMode occlusionMode)
Determines when this icon should be painted in 3D in relation to other 3D data.
|
FeatureCanvas.IconDrawCommand |
orientation(Azimuth orientation)
Sets the azimuth towards which the top side of the icon should be oriented.
|
FeatureCanvas.IconDrawCommand |
position(RelativePosition position)
Determines the positioning of the icon, relative to the anchor.
|
FeatureCanvas.IconDrawCommand |
queryable(boolean queryable)
Indicates whether or not the icon should be considered when a
Map#queryFeatures is requested. |
FeatureCanvas.IconDrawCommand |
scale(double scaleFactor)
Applies a scale factor to the icon's size and offsets.
|
FeatureCanvas.IconDrawCommand |
size(double width,
double height)
This method overrides the size of the specified
icon . |
void |
submit()
Submits this draw command.
|
FeatureCanvas.IconDrawCommand |
zOrder(int zOrder)
The Z-order of the icon.
|
public void close()
close
in interface AutoCloseable
@NotNull public FeatureCanvas.IconDrawCommand icon(@NotNull IIcon icon) throws NullPointerException
For the best performance, reuse the same IIcon
instance when calling this function multiple times.
icon
- the icon to draw, cannot be null
.IconDrawCommand
.NullPointerException
- when the icon is null
.@NotNull public FeatureCanvas.IconDrawCommand anchor(@NotNull Geometry anchor) throws IllegalArgumentException, NullPointerException
This property is mandatory. the anchor must be a Point
.
anchor
- the anchor of the icon, cannot be null
.IconDrawCommand
.IllegalArgumentException
- if another geometry than a Point
is used as anchor.NullPointerException
- if anchor is null
.@NotNull public FeatureCanvas.IconDrawCommand position(@NotNull RelativePosition position)
The offset
properties
will be interpreted as pixels, or meters
.
This method is optional: if not specified, the default position as defined in RelativePosition
will be used.
position
- the positioning of the icon, relative to the anchor.IconDrawCommand
.@NotNull public FeatureCanvas.IconDrawCommand orientation(@NotNull Azimuth orientation)
For example, an azimuth of 0 means that the icon will be painted upright when the North arrow points upwards, but the icon will rotate along when the map is rotated. The anchor point serves as the center of this rotation.
If no orientation is specified, the icon will not be oriented and always be displayed with the same angle in view space, independent of how the map is oriented. In order to set the icon's rotation in view space, use position
.
orientation
- the orientation of the icon.IconDrawCommand
.@NotNull public FeatureCanvas.IconDrawCommand draped(boolean draped)
Draping means that the icon is painted directly on top of the terrain’s surface relief.
By default, an icon is draped if the geometry has a zero Z value. Otherwise it will not be draped. You can override the default behaviour by setting this flag true or false. If you explicitly drape for a 3D point with height, its height is discarded.
This setting is only relevant for 3D maps and is ignored for 2D maps.
draped
- true if the icon should be draped over terrain.IconDrawCommand
.@NotNull public FeatureCanvas.IconDrawCommand queryable(boolean queryable)
Map#queryFeatures
is requested.
The default is true.
queryable
- true if the icon should be considered.IconDrawCommand
.@NotNull public FeatureCanvas.IconDrawCommand zOrder(int zOrder)
DrawCommands are painted from lowest to highest Z-order, so DrawCommands with a higher Z-order are painted on top of DrawCommands with a lower Z-order. Note that the Z-order only affects the ordering of features within the same layer. A feature from a certain layer will always get painted above any other feature from a layer that comes lower in the map's layer order, regardless of what Z-order they may have. The default value is 0.
zOrder
- the Z-order of this icon.IconDrawCommand
.@NotNull public FeatureCanvas.IconDrawCommand scale(double scaleFactor) throws IllegalArgumentException
This method is optional. If it is not called, no scaling will be performed (i.e. a scale of 1.0 is used).
The icon size and position on the map is determined using the following methods:
scaleFactor
- the scale factor to apply to the icon's
size
and offset
properties
.IconDrawCommand
IllegalArgumentException
- if a value equal to or smaller than 0 is provided@NotNull public FeatureCanvas.IconDrawCommand size(double width, double height) throws IllegalArgumentException
icon
.
This method is optional. If it is not called, the icon's natural size is used.
The icon size and position on the map is determined using the following methods:
width
- the width of the icon, defined in device independent pixels or meters
.height
- the height of the icon, defined in device independent pixels or meters
.IconDrawCommand
IllegalArgumentException
- if a value equal to or smaller than 0 is provided@NotNull public FeatureCanvas.IconDrawCommand inMeters()
offset
properties
as meters instead of pixels.
This method is optional. By default, the size and offsets are interpreted as device independent pixels.
The icon size and position on the map is determined using the following methods:
IconDrawCommand
@NotNull public FeatureCanvas.IconDrawCommand occlusionMode(@NotNull OcclusionMode occlusionMode)
Details and limitations:
OcclusionMode#VisibleOnly
shows only the part of the icon that is not obscured by other 3D data. This is the default.
OcclusionMode#AlwaysVisible
shows the entire icon even if behind other 3D data. The icon will appear in front of other objects.
OcclusionMode#OccludedOnly
shows only the part of the icon that is behind other 3D data. You typically use this to display obscured icons in combination with another style that uses OcclusionMode#VisibleOnly
mode.
The default is OcclusionMode#VisibleOnly
.
occlusionMode
- the occlusion mode to useIconDrawCommand
public void submit() throws IllegalStateException
Nothing will be painted if the draw command is not submitted.
IllegalStateException
- when there are missing icon command calls or the command is already submitted.