Class TLspAIXMStyler

All Implemented Interfaces:
ILspStyler

public class TLspAIXMStyler extends ALspLabelStyler
A styler for AIXM 5.1 features.

This styler visualizes the elements returned by TLcdAIXM51AbstractAIXMMessage#elements
The following AIXM 5.1 types are currently supported:

  • AirportHeliport
  • DesignatedPoint
  • Navaid
  • Unit
  • RunwayBlastPad
  • RunwayCentreLinePoint
  • RunwayElement
  • AirportProtectionAreaMarking
  • ApronMarking
  • DeicingAreaMarking
  • GuidanceLineMarking
  • RunwayMarking
  • StandMarking
  • TaxiHoldingPositionMarking
  • TaxiwayMarking
  • TouchDownLiftOffMarkingPassengerService
  • PassengerService
  • AirportSuppliesService
  • TaxiwayElement
  • ApronElement
  • RouteSegment
  • Airspace
  • GeoBorder
  • GuidanceLine
  • InstrumentApproachProcedure
  • StandardInstrumentDeparture
  • StandardInstrumentArrival
  • DepartureLeg
  • TouchDownLiftOff
  • TouchDownLiftOffSafeArea
  • VerticalStructure
  • SafeAltitudeArea

For each supported feature type, default settings and styles are returned.

The following default settings are used for each feature type:

  • AirportHeliport
    • Rendering: 'ICAO Annex 4'-compliant icon, color (255, 255, 255) (white)
    • Label: value of the designator, referenced by the XPath expression
      timeSlice/AirportHeliportTimeSlice/designator
      see TLspTextStyle
  • DesignatedPoint
    • Rendering: 'ICAO Annex 4'-compliant icon, color (255, 255, 255) (white)
    • Label: value of the name, referenced by the XPath expression
      timeSlice/DesignatedPointTimeSlice/name
      see TLspTextStyle
  • Navaid
    • Rendering: 'ICAO Annex 4'-compliant icon, color (255, 255, 255) (white)
    • Label: 'ICAO Annex 4'-compliant label - see TLcdAIXM51NavaidLabelPainter
  • Unit
    • Rendering: filled rectangle icon, color (255, 255, 255) (white) - see TLcdSymbol.FILLED_RECT
    • Label: value of the name, referenced by the XPath expression
      timeSlice/UnitTimeSlice/nametimeSlice/UnitTimeSlice/designator
      see TLspTextStyle
  • RunwayBlastPad
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (51, 51, 51) - see TLspFillStyle
    • Label: value of the designator of the associated runway, referenced by the XPath expression valueOf(timeSlice/RunwayBlastPadTimeSlice/usedRunwayDirection,timeSlice/RunwayDirectionTimeSlice/designator)
      see TLspTextStyle
  • RunwayCentrelinePoint
    • Rendering: filled rectangle icon, color (255, 255, 255) (white) - see TLcdSymbol.FILLED_RECT
    • Label: value of the role, referenced by the XPath expression
      timeSlice/RunwayCentrelinePointTimeSlice/role
      see TLspTextStyle
  • RunwayElement
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (51, 51, 51) + texture based upon the surface composition - see TLspFillStyle
    • Label: value of the designator of the associated runway, referenced by the XPath expression valueOf(timeSlice/RunwayElementTimeSlice/associatedRunway,timeSlice/RunwayTimeSlice/designator)
      see TLspTextStyle
  • AirportProtectionAreaMarking, ApronMarking, DeicingAreaMarking, GuidanceLineMarking, RunwayMarking, StandMarking, TaxiHoldingPositionMarking, TaxiwayMarking, TouchDownLiftOffMarking
    • Rendering (surface): GML 3.2 surface, no line, fill color dependent on colour-property (WHITE by default) - see TLspFillStyle
    • Rendering (curve): GML 3.2 curve, color dependent on colour-property (WHITE by default), width 3, stroke-style dependent on style-property (SOLID by default) - see TLspLineStyle
    • Rendering (point): GML 3.2 point, filled rectangle icon, color dependent on colour-property (WHITE by default)
  • PassengerService
    • Rendering: type specific icon (i.e. a car-icon for TRANSPORT, bank-note-icon for BANK etc.)
    • Label: value of the type, referenced by the XPath expression
      timeSlice/PassengerServiceTimeSlice/type
      see TLspTextStyle
  • AirportSuppliesService
    • Rendering: icon based on "SUGPIRP---H****" from the MS2525c-standard (WARFIGHTING SYMBOLS - GROUND TRACK - INSTALLATION - RAW MATERIAL PRODUCTION/STORAGE - PETROLEUM/GAS/OIL)
    • Label: list of categories of the supplied services, in the order of [fuelSupply oilSupply nitrogenSupply oxygenSupply], referenced by the XPath expressions
      timeSlice/AirportSuppliesServiceTimeSlice/fuelSupply/Fuel/category
      timeSlice/AirportSuppliesServiceTimeSlice/oilSupply/Oil/category
      timeSlice/AirportSuppliesServiceTimeSlice/nitrogenSupply/Nitrogen/type
      timeSlice/AirportSuppliesServiceTimeSlice/oxygenSupply/Oxygen/type

      see TLspTextStyle
  • Taxiway
    • Rendering: GML 3.2 surface, color depends on the contamination type - see TLspFillStyle
    • Label: friction estimation of the taxiway contamination, referenced by the XPath expression
      timeSlice/TaxiwayTimeSlice/contaminant/TaxiwayContamination/frictionEstimation
      see TLspTextStyle
  • TaxiwayElement
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (156, 150, 138) - see TLspFillStyle
    • Label: value of the designator of the associated taxiway, referenced by the XPath expression
      valueOf(timeSlice/TaxiwayElementTimeSlice/associatedTaxiway,timeSlice/TaxiwayTimeSlice/designator)
      see TLspTextStyle
  • Apron
    • Rendering: GML 3.2 surface, color depends on the contamination type - see TLspFillStyle
    • Label: friction estimation of the apron contamination, referenced by the XPath expression
      timeSlice/ApronTimeSlice/contaminant/ApronContamination/frictionEstimation
      see TLspTextStyle
  • ApronElement
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (196, 190, 178) - see TLspFillStyle
    • Label: value of the name, referenced by the XPath expression
      timeSlice/ApronElementTimeSlice/name
      see TLspTextStyle
  • RouteSegment
    • Rendering:
      • 2D: GML 3.2 curve, color (0, 185, 56) - see TLspLineStyle
      • 3D: 3D Corridor, fill color (88, 115, 165) - see TLcdExtrudedShape and ILcdGeoBuffer
        • Base shape: GML 3.2 Curve
        • Width: timeSlice/RouteSegmentTimeSlice/widthLeft + timeSlice/RouteSegmentTimeSlice/widthRight
        • MinimumZ: timeSlice/RouteSegmentTimeSlice/lowerLimit
        • MaximumZ: timeSlice/RouteSegmentTimeSlice/upperLimit
    • Label: value of the name of the associated route, referenced by the XPath expressions
      valueOf(timeSlice/RouteSegmentTimeSlice/routeFormed,timeSlice/RouteTimeSlice/name)
      valueOf(timeSlice/RouteSegmentTimeSlice/routeFormed,timeSlice/RouteTimeSlice/designatorPrefix)valueOf(timeSlice/RouteSegmentTimeSlice/routeFormed,timeSlice/RouteTimeSlice/designatorSecondLetter)valueOf(timeSlice/RouteSegmentTimeSlice/routeFormed,timeSlice/RouteTimeSlice/designatorNumber)

      see TLspTextStyle
  • Airspace
    • Rendering: 'ICAO Annex 4'-compliant styling, based upon the airspace classification. Terrain elevation is taken into account when the vertical reference of a 3D airspace is SFC. Note: Elevation must be loaded before the AIXM 5 model (i.e. we do not listen to terrain change events).
    • Label: 'ICAO Annex 4'-compliant label
  • GeoBorder
    • Rendering: GML 3.2 curve, color (255, 255, 255) - see TLspLineStyle
    • Label: value of the name, referenced by the XPath expression
      timeSlice/GeoBorderTimeSlice/name
      see TLspTextStyle
  • GuidanceLine
    • Rendering: GML 3.2 curve, color (255, 229, 1), width 2 - see TLspLineStyle
    • Label: value of the designator, referenced by the XPath expression
      timeSlice/GuidanceLineTimeSlice/designator
      see TLspTextStyle
  • InstrumentApproachProcedure, StandardInstrumentDeparture, StandardInstrumentArrival
    • Rendering: GML 3.2 curve, color (255, 255, 255) - see TLspLineStyle
    • Label: value of the name, referenced by the XPath expressions
      timeSlice/InstrumentApproachProcedureTimeSlice/name
      timeSlice/StandardInstrumentArrivalTimeSlice/name
      timeSlice/StandardInstrumentDepartureTimeSlice/name
      see TLspTextStyle
  • TouchDownLiftOff
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (51, 51, 51) - see TLspFillStyle
    • Label: value of the designator of the associated airportheliport, together with the surface composition, referenced by the XPath expressions
      timeSlice/TouchDownLiftOffTimeSlice/designator
      timeSlice/TouchDownLiftOffTimeSlice/surfaceProperties/SurfaceCharacteristics/composition

      see TLspTextStyle
  • TouchDownLiftOffSafeArea
    • Rendering: GML 3.2 surface, line color ( 0, 88, 12 ), fill color (0, 128, 12 ) - see TLspFillStyle
    • Label: value of the designator of the touchdownliftoff it protects, together with the surface composition, referenced by the XPath expression
      valueOf(timeSlice/TouchDownLiftOffSafeAreaTimeSlice/protectedTouchDownLiftOff,timeSlice/TouchDownLiftOffTimeSlice/designator)
      timeSlice/TouchDownLiftOffTimeSlice/surfaceProperties/SurfaceCharacteristics/composition

      see TLspTextStyle
  • VerticalStructure
    • Rendering (surface): GML 3.2 surface, line color (215, 142, 0), fill color (255, 192, 0, 128) - see TLspFillStyle
    • Rendering (curve): GML 3.2 curve, color (255, 192, 0) - see TLspLineStyle
    • Rendering (point):
      • 2D: GML 3.2 point, 'ICAO Annex 4'-compliant icon
      • 3D: Cylinder - see TLcdExtrudedShape, fill color (88, 115, 165)
        • Center: GML 3.2 point
        • Radius, value of the following property (if it does not contain a proper value, we will take the next one in the list)
          • timeSlice/VerticalStructureTimeSlice/radius
          • max(timeSlice/VerticalStructureTimeSlice/width, timeSlice/VerticalStructureTimeSlice/length) if both properties are present. If only one is present we will take that one.
          • Default value based on timeSlice/VerticalStructureTimeSlice/type property
            • Windmill: 62m
            • Crane: 25m
            • Other: 35m
        • Height
          • verticalStructurePart/verticalExtent property
          • Default value: 100 m
    • Label: value of the name, referenced by the XPath expression
      timeSlice/VerticalStructureTimeSlice/name
      see TLspTextStyle
  • SafeAltitudeArea
    • Rendering (surface): GML 3.2 surface, fill color (88, 115, 165) - see TLspFillStyle
    • Label:
      • The arc angles and the radii of every SafeAltitudeAreaSector are displayed by using on-path labeling.
      • The altitude of every SafeAltitudeAreaSector is displayed by using area labeling.

Since:
2012.1
  • Constructor Details

    • TLspAIXMStyler

      public TLspAIXMStyler()
      Default constructor. Creates a new styler for AIXM 5.1 data, using a set of predefined styles for AIXM 5.1.
  • Method Details

    • getSLDFeatureTypeStyle

      public TLcdSLDFeatureTypeStyle getSLDFeatureTypeStyle(TLcdDataType aFeatureType)
      Returns an SLD feature type style that can be used to configure styling for the given feature type. If an SLD style is set on this styler with the setSLDFeatureTypeStyle(TLcdDataType, TLcdSLDFeatureTypeStyle) method, it will be returned. Otherwise a style will be returned that resembles the style that is internally used by the painter, as far as that style can be represented using SLD. This means that if you set a style on this styler that was retrieved using this method, the styling may change! Thus, styles retrieved with this method can only be considered as an example.

      The style supports styling of AIXM 5.1 features, and is primarily meant for use with this styler. It is not guaranteed that it can be used with a generic SLD painter without modification. It can be read and written with the LuciadLightspeed SLD decoder/encoder.

      To customize the styles, it is not sufficient to modify the instance returned by this method. You need to set the style again as illustrated below.

      
         // retrieve the style
         TLspAIXMStyler styler = ...;
         TLcdDataType dataType = ...;
         TLcdSLDFeatureTypeStyle style = styler.getSLDFeatureTypeStyle( dataType );
      
         // modify the style
         style = modifyStyle( style );
      
         // set the style on the styler to apply the style changes
         styler.setSLDFeatureTypeStyle( dataType, style );
       
      Do note that styles returned by this method are not guaranteed to remain the same across different versions of LuciadLightspeed. It is very likely that the default styles will be improved over time, or updated if new features are added to the SLD specifications.

      The TLcdDataType that defines the feature type can be retrieved generically using the ILcdDataModelDescriptor.getModelElementTypes() method, or the ILcdDataObject.getDataType() method. It is also possible to use one of the constants that are available in TLcdAIXM51DataTypes.

      Parameters:
      aFeatureType - The feature type for which a style is to be retrieved. This type has to be an extension of an AIXM 5.1 abstract feature.
      Returns:
      A valid feature type style for use with this painter provider.
      Throws:
      IllegalArgumentException - In case aFeatureType is not an extension of an AIXM 5.1 abstract feature.
      See Also:
    • setSLDFeatureTypeStyle

      public void setSLDFeatureTypeStyle(TLcdDataType aFeatureType, TLcdSLDFeatureTypeStyle aFeatureStyle)
      Sets the SLD feature type style that defines the visualization for the given feature type. Use null to reset to the default style.

      All of the XPath expressions in the style will be evaluated on AIXM 5.1 features.

      Parameters:
      aFeatureType - The feature type for which the style needs to be set. This type has to be an extension of an AIXM 5.1 abstract feature.
      aFeatureStyle - A valid SLD feature type style, or null to reset the painter to the default style.
      Throws:
      IllegalArgumentException - In case aFeatureType is not an extension of an AIXM 5.1 abstract feature.
      See Also:
    • style

      public void style(Collection<?> aObjects, ALspLabelStyleCollector aStyleCollector, TLspContext aContext)
      Description copied from class: ALspLabelStyler

      Convenience method that takes an ALspLabelStyleCollector as argument instead of an ALspStyleCollector. This method is called from ALspLabelStyler.style(Collection, ALspStyleCollector, TLspContext).

      Specified by:
      style in class ALspLabelStyler
      Parameters:
      aObjects - The set of domain objects to provide information for
      aStyleCollector - The label style collector to submit the information to.
      aContext - The context
      See Also:
    • style

      public void style(Collection<?> aObjects, ALspStyleCollector aStyleCollector, TLspContext aContext)
      Description copied from class: ALspLabelStyler

      Implementation of ILspStyler.style that either casts the ALspStyleCollector to ALspLabelStyleCollector if possible, or adapts it otherwise. In the latter case, the labeling-specific calls (label, anchorLabel, algorithm, ...) are ignored. The ALspLabelStyleCollector is then passed to the style(Collection,ALspLabelStyleCollector,TLspContext) method.

      Specified by:
      style in interface ILspStyler
      Overrides:
      style in class ALspLabelStyler
      Parameters:
      aObjects - The objects to be styled.
      aStyleCollector - A style collector to which all styling information should be passed, this collector is only valid within this method call, and can no longer be used afterwards.
      aContext - Provides context information that may affect styling, such as view specific properties.