2024.0

2024.0.09

Bug fixAviation Standards

LCD-13578
Decoding an AIXM 5.1.1 file with a schemaLocation attribute that referred to accessible XML Schemas for AIXM 5.1.1-related namespaces could result in a model with an incorrect TLcdDataModel. This could lead to a NullPointerException in the AIXM 5 visualization logic, which relies on the data model to find an appropriate style for an AIXM 5 feature type.

Bug fixAviation Standards

LCD-13568
The performance of evaluating AIXM 5.1.* XPath expressions inside OGC Filter conditions has been improved significantly, producing results up to 4 times faster depending on the used XPath expressions and the size of the OGC Filter.

2024.0.08

ImprovementAviation Standards

LCD-13565
Added support for AIXM 5.1.1 data defined in one of the following iNM AIXM 5.1.1 extension XML Schemas:
  • http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/EAD-Audit
  • http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/EAD-ADN
  • http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/EAD-ADR
  • http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/NaturalDescriptor

2024.0.03

Bug fixAviation Standards

LCD-13435
An AIXM 5.1 vertical structure feature with an empty vertical extent value triggered a NullPointerException when it was visualized in a Lightspeed view.

2024.0

ImprovementAviation Standards

LCD-13371
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 26.0 to version 27.0.

2023.1

2023.1.09

New featureAviation Standards

LCD-13285
The new method TLcdDAFIFTATSRouteDecoder#setSplitByBatch allows you to split a DAFIFT ATS route with multiple batches into multiple ATS routes. The new method TLcdDAFIFModelDecoder#createModelDecodersForDataType allows you to return a specific model decoder for a specific data type. So if you're using TLcdDAFIFModelDecoder and you want split batches into separate ATS routes, you can override #createModelDecodersForDataType and return a custom TLcdDAFIFTATSRouteDecoder which is configured to split batches into separate routes.

2023.1.04

Bug fixAviation Standards

LCD-13223
The fix introduced by LCD-12852 introduced a regression for airspace compositions containing airspaces of which the volume was defined by dependent airspaces.

2023.1.02

ImprovementAviation Standards

LCD-13185
Upgraded the included EAD ADR AIXM 5.1(.1) XML Schema extensions to support version 15.2.

2023.1.01

Bug fixAviation Standards

LCD-13183
The rendering of AIXM 5.1 holding patterns in GXY could trigger cut-off icons near the map borders. This was especially visible when the data was visualized using a tiled WMS or WMTS service.

2023.0

2023.0.12

Bug fixAviation Standards

LCD-13088
Fixed a geometry edge case in the handling of AIXM 5.1 airspace compositions. Small inaccuracies in a composition could prevent its use in a new airspace composition, causing the warning message "Could not process airspace geometry SurfaceType[anonymous] due to an invalid topology".

2023.0.11

Bug fixAviation Standards

LCD-13087
Fixed the handling of an airspace segment that follows a geographical border for only one point.

2023.0.07

ImprovementAviation Standards

LCD-12950
A new package com.luciad.ais.model.finalapproachpath has been added to AIS containing domain objects to model a final approach path.

ImprovementAviation Standards

LCD-12950
A new DAFIFT decoder TLcdDAFIFTPrecisionApproachPathDecoder has been added to support the decoding of Precision Approach Path objects. The data type of the decoded objects is TLcdDAFIFTDataTypes#PrecisionApproachPath, which extends from the new FinalApproachPath type in AIS.

Bug fixAviation Standards

LCD-12850
Made the calculation of the connection between an airspace segment and a geographical border more robust to avoid a self-intersecting geometry. A self-intersecting geometry prevents the use of the airspace in an airspace aggregation.

Bug fixAviation Standards

LCD-12852
Fixed a geometry edge case in the handling of AIXM 5.1 airspace compositions. A composition of several equal airspaces could introduce small inaccuracies. This could prevent its use in a new airspace composition, causing the warning message "Cause: found non-noded intersection between LINESTRING ... and LINESTRING ...".

2023.0.02

ImprovementAviation Standards

LCD-12842
The DAFIFT decoder TLcdDAFIFTMinimumSectorAltitudeDecoder now supports the decoding of the MSA Type property, which gives information about the type of the terminal procedure of the record. The property can be accessed via TLcdDAFIFTSectorDataProperties#MSA_TYPE.

2022.1

2022.1.09

ImprovementAviation Standards

LCD-12899
Fixed the decoding of AIXM 5.1 data defined using the FAA SubscriberFile extension. This extension is used by the NASR data distribution available at https://www.faa.gov/air_traffic/flight_info/aeronav/aero_data/NASR_Subscription/.

ImprovementAviation Standards

LCD-12901
Improved the visualization of AIXM 5.1 InformationService features: the features are now painted on terrain with an appropriate AIS icon that indicates the presence of a communication service.

2022.1.07

Bug fixAviation Standards

LCD-12845
Fixed a geometry edge case in the handling of AIXM 5.1 airspace compositions. Small inaccuracies in a composition could prevent its use in a new airspace composition, causing the warning message "Invalid number of points in LinearRing (found 3 - must be 0 or >= 4)".

2022.1.06

Bug fixAviation Standards

LCD-12841
Enabling time filtering for AIXM 5.1 data containing holding patterns could trigger a NullPointerException.

2022.1.05

ImprovementAviation Standards

LCD-12653
AIXM 5.1 holding patterns are now visualized in GXY and Lightspeed views, using an oval icon that aligns with the turn direction and inbound course:
Holding pattern visualization
A holding pattern located at a navaid, with a right turn direction and an inbound course of 264 degrees.

Bug fixAviation Standards

LCD-12807
TLcdAIXMProcedureHandler will skip procedure legs with type OTHER instead of throwing an exception.

2022.1.04

ImprovementAviation Standards

LCD-12795
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 25.0 to version 26.0.

2022.0

2022.0.16

ImprovementAviation Standards

LCD-12656
Two new methods have been added to com.luciad.ais.model.procedure.ILcdProcedureLeg:
  • getOriginalAltitudeUpper
  • getOriginalAltitudeLower
These methods return the upper and lower altitude with the same value and unit of measure as stored in the source file.

ImprovementAviation Standards

LCD-12661
The AIXM 5.1 decoder now also supports resolving feature links that use the prefix "urn:uuid." instead of the common "urn:uuid:" prefix.

Bug fixAviation Standards

LCD-12639
The ARINC layer builder TLspARINCLayerBuilder defines a list of ARINC-specific SLD files in location TLspARINCLayerBuilder#SYMBOLOGY_ENCODING_FILES_LOCATION. The default style for runways Runway.sld did not define the fill style correctly and has been fixed.

Bug fixAviation Standards

LCD-12662
The AIXM 5.1 decoder did not support holding pattern locations defined by a link to another AIXM 5.1 feature.

2022.0.13

Bug fixAviation Standards

LCD-12611
The ARINC handler TLcdARINCMinimumSectorAltitudeHandler did not correctly support ARINC 424 version 15, which uses a different Minimum Sector Altitude data structure than more recent versions.

2022.0.11

Bug fixAviation Standards

LF-2290, LCD-12201, LCD-10311
The TLcdDAFIFModelDecoder now returns data series when decoding model metadata.

2022.0.10

ImprovementAviation Standards

LCD-12524
A new ARINC handler TLcdARINCMinimumSectorAltitudeHandler has been added to support the decoding of Minimum Sector Altitude objects. These objects define the lowest altitudes that may be used safely in the presence of terrain and obstacles. Decoded objects are of the type ILcdMinimumSectorAltitude, which can contain one or more ILcdSector objects that define the minimum altitude for an area represented by an arc band. The data types of these objects are respectively TLcdARINCDataTypes#MinimumSectorAltitude and TLcdARINCDataTypes#Sector.

Bug fixAviation Standards

LF-2289
The TLcdDAFIFModelDecoder#canDecodeSource method allowed transaction files (files in T_TRANS directory) even though these files are not supported yet. To prevent issues when decoding these files, TLcdDAFIFModelDecoder#canDecodeSource now returns false for transaction files.

2022.0.06

ImprovementAviation Standards

LCD-12500
The AIXM 5.1 features RunwayCentrelinePoint and RunwayBlastPad were not painted on terrain, causing the features to disappear on a 3D view in case terrain data was loaded.

2022.0.04

ImprovementAviation Standards

LCD-12489
Upgraded the included Digital NOTAM Event XML Schema to support AIXM 5.1.1.

2022.0

ImprovementAviation Standards

The following AIS API classes now implement ILcdCurve: The following AIS API classes now implement ILcdRing: The following AIS API interfaces now extend ILcdRing: ILcdAirspaceCorridor now extends ILcdCurve.

Upgrade considerationAviation Standards

TLcdAISPolygon#set3DEditablePolygon now requires an ILcdRing as parameter. TLcdAISPolyline#set3DEditablePolyline now requires an ILcdCurve as parameter. The following AIS API methods of ALcdAISGeometryFactory now need to return an instance of ILcdCurve:
  • ALcdAISGeometryFactory#createPolyline()
  • ALcdAISGeometryFactory#createPolyline(ILcd3DEditablePointList aPointList)
The following AIS API methods of ALcdAISGeometryFactory now need to return an instance of ILcdRing:
  • ALcdAISGeometryFactory#createPolygon()
  • ALcdAISGeometryFactory#createPolygon(ILcd3DEditablePointList aPointList)

2021.1

2021.1.15

ImprovementAviation Standards

LCD-12283
The AIXM 5.1(.1) rendering logic for GXY and Lightspeed views now uses a default visualization style for custom feature types defined in AIXM extensions.

2021.1.12

ImprovementAviation Standards

LCD-12281
Added support for AIXM 5.1.1 data defined according to the ASRN XML Schema extension, identified by the namespace "http://www.aixm.aero/schema/5.1.1/asrn".

ImprovementAviation Standards

LCD-12259
The AIXM 5.1 decoder TLcdAIXM51ModelDecoder now allows to configure whether the interpolation of linear GML elements needs to be geodesic in case of a geodetic reference, through the newly introduced methods setLinearElementsUseGeodesicInterpolationForGeodeticSrs and isLinearElementsUseGeodesicInterpolationForGeodeticSrs. This impacts the AIXM-compatible GML elements LineStringSegment and LinearRing. Although these GML elements conceptually represent geometries with a linear interpolation, they are often used to represent geometries with lon/lat coordinates and a geodesic interpolation. The default setting is to use geodesic interpolation.

2021.1.07

ImprovementAviation Standards

LCD-12196
A new package com.luciad.ais.model.sector has been added to AIS containing domain objects to model sector-based minimum safety altitudes.

ImprovementAviation Standards

LCD-12196
A new DAFIFT decoder TLcdDAFIFTMinimumSectorAltitudeDecoder has been added to support the decoding of Minimum Sector Altitude objects. The data type of the decoded objects is TLcdDAFIFTDataTypes#MinimumSectorAltitude, which extends from the new MinimumSectorAltitude type in AIS.

Bug fixAviation Standards

LCD-12220
AIXM 5.1 navaids of type DME were incorrectly visualized using a VOR_DME icon instead of a DME icon.

2021.1.05

ImprovementAviation Standards

LCD-12197
The DAFIFT Runway decoder could not cope with runway records containing empty values for the take off or landing distance available fields.

Bug fixAviation Standards

LCD-12192
AIXM 5.1 airspace volume subtractions were not visible in GXY and Lightspeed 2D views if their vertical extent did not include the vertical extent of the base airspace volume.

2021.1.04

ImprovementAviation Standards

LCD-12170
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 24.0 to version 25.0.

Bug fixAviation Standards

LCD-12067
Fixed a bug that caused unexpected and superfluous turn circles in the trajectory of a CF-based IAP procedure.

2021.1.02

ImprovementAviation Standards

LCD-12123
The DAFIFT decoders now support the decoding of the Cycle Date property, which gives information about the time a DAFIFT feature was added or last revised.

ImprovementAviation Standards

LCD-12126
Added the EAD ADR and Audit XML Schemas to the cached set of AIXM 5.1 schema extension resources. The following namespaces can now be used without a reference to their schema location: "http://www.aixm.aero/schema/5.1/extensions/EUR/EAD/ADR" and "http://www.aixm.aero/schema/5.1/extensions/EUR/EAD/Audit"

2021.0

2021.0.10

ImprovementAviation Standards

LCD-12033
The 3D visualization of ATS routes decoded by the AIS-based data formats DAFIF(T), ARINC 424 and AIXM 3 and 4 now takes the altitude of the route segments into account.

Bug fixAviation Standards

LCD-12050
The property ILcdDAFIFNavaidFeature#ICAO_CODE was not correctly decoded from DAFIFT navaid data: it received the same value as the ILcdDAFIFNavaidFeature#ICAO_REGION property.

2021.0.09

Bug fixAviation Standards

LCD-12019
Fixed an issue that could lead to an AIXM 5.1 airspace aggregation error in a Lightspeed 3D view for airspaces that contain multiple levels of aggregations.

Bug fixAviation Standards

LCD-12018
Fixed an issue that could lead to an AIXM 5.1 airspace aggregation error for airspaces that cross the 0th meridian.

2021.0.08

Bug fixAviation Standards

LCD-12014
Fixed an AIXM 5.1 airspace decoding issue that could cause "Cannot connect arc" warnings for airspaces containing arc and geographical border segments.

Bug fixAviation Standards

LCD-12012
Fixed a geometry edge case in the handling of AIXM 5.1 airspace volumes containing consecutive arcs. This could lead to a self-intersecting airspace geometry, which prevented the use of the airspace in an airspace aggregation.

2021.0.03

ImprovementAviation Standards

LCD-11953
The leaf models in the model tree decoded by TLcdDAFIFModelDecoder now implement ILcdFeatureIndexedModel, to ease indexing them for one or more properties. An example use case for airport models is the use of an index for the ICAO code property ILcdDAFIFAerodromeFeature.ICAO_CODE, to quickly find airports for a given ICAO code using ILcdFeatureIndexedModel#retrieveByUniqueIndex.

2021.0

ImprovementAviation Standards

Improved the visualization of some ICAO icons.

2020.1

2020.1.18

Bug fixAviation Standards

The AIXM 5.1 features AircraftStand, StandMarking and GuidanceLineMarking were not painted on terrain, causing the features to disappear on a 3D view in case terrain data was loaded.

Bug fixAviation Standards

LCD-11732
The decimal part of an AIXM 5.1 vertical distance value that used a comma instead of a dot as decimal separator was ignored.

2020.1.13

Bug fixAviation Standards

LCD-11715
The AIXM 5.1 feature ApronMarking was not painted on terrain, causing the feature to disappear on a 3D view in case terrain data was loaded.

2020.1.12

ImprovementAviation Standards

LCD-11676
The AIXM 5.1 layer factory for GXY views, TLcdAIXM51GXYLayerFactory, now also supports creating layers for model containers that include multiple AIXM 5.1 models. The resulting layer is a layer tree node that includes a layer for each AIXM 5.1 model in the container.

Bug fixAviation Standards

LCD-11693
The style property of an AIXM 5.1 MarkingElement was not taken into account during visualization; this defines whether a line-based marking should be rendered with a solid, dashed or dotted line style.

Bug fixAviation Standards

LCD-11672
Fixed a geometry edge case in the handling of AIXM 5.1 airspace volumes containing one or more segments located at the poles. This could lead to a self-intersecting airspace geometry, which prevented the use of the airspace in an airspace aggregation.

2020.1.11

Bug fixAviation Standards

LCD-11671
Fixed a geometry edge case in the handling of AIXM 5.1 airspace volumes containing one or more segments based on a geographical border. This could lead to a self-intersecting airspace geometry, which prevented the use of the airspace in an airspace aggregation.

2020.1.09

Bug fixAviation Standards

LCD-11648
The ARINC decoder TLcdARINCModelDecoder did not decode the Restrictive Airspace property TLcdARINCRestrictiveAirspaceDataProperties.CYCLE_DATE.

2020.1.05

ImprovementAviation Standards

LCD-11610
The AIXM 3/4 decoder TLcdAIXMModelDecoder can now also decode stand-alone AIXM-Update files, without requiring to load an AIXM-Snapshot file upfront.

Bug fixAviation Standards

LCD-11606
Fixed a NullPointerException that could occur when decoding an AIXM-Update file with route segment updates containing a missing start and/or end point.

2020.1.02

Bug fixAviation Standards

LCD-11547
Fixed the handling of AIXM 5.1 airspace aggregations for airspaces with the following characteristics:
  • Airspaces that crossed the 180th meridian,
  • Airspaces that started with an arc segment.
In both cases, the resulting AIXM 5.1 airspace aggregation could have an incorrect airspace boundary.

2020.1.01

Bug fixAviation Standards

LCD-11548
TLcdARINCModelDecoder: fixed a potential NullPointerException that could occur when decoding Start / End data properties within Restrictive Airspace continuation records.

2020.1

ImprovementAviation Standards

LCD-10738
The model descriptor of decoded AIXM 3/4 models now has a more meaningful display name based on the source of the data, instead of the fixed string "AIXM Data".

ImprovementAviation Standards

LCD-10738
The model descriptor of decoded ARINC models now has a more meaningful display name based on the source of the data, instead of the fixed string "ARINC Data".

2020.0

2020.0.16

ImprovementAviation Standards

LCD-9619
TLcdAIXM51ModelDecoder now supports decoding AIXM 5.1.1 data.

ImprovementAviation Standards

LCD-11481
The heights of the sectors of an AIXM 5.1 SafeAltitudeArea feature now use the CircleSector's height as fallback if the obstacle height information is missing.

Bug fixAviation Standards

LCD-11491
The angles of the sectors of an AIXM 5.1 SafeAltitudeArea feature were not correctly interpreted in case of an angle direction towards the center, a counterclockwise arc direction and/or angles defined against the magnetic north; this could lead to incorrectly placed angle labels.

2020.0.14

Bug fixAviation Standards

LCD-11468
Fixed the handling of AIXM 5.1 SafeAltitudeArea features with a sector centre point referring to another AIXM 5.1 feature (e.g., an AirportHeliport).

2020.0.13

Bug fixAviation Standards

LCD-11463
The width of an AIXM 5.1 airspace corridor was incorrectly interpreted as the width from axis to border instead of the width from border to border.

Bug fixAviation Standards

LCD-11449
Fixed two issues related to the handling of AIXM 5.1 airspace volume segments based on a geographical border:
  • The connection from the previous and next airspace volume segment with the geographical border was not visible.
  • The determined connection point on the geographical border could lead to a geometry edge case, which prevented the use of the airspace in an airspace aggregation.

2020.0.08

Bug fixAviation Standards

LCD-11374
TLcdARINCModelDecoder: fixed a potential NullPointerException that could occur when decoding Restrictive Airspace data with continuation records.

2020.0.07

Bug fixAviation Standards

LCD-11357
Decoding AIXM 4 procedure leg data that specified optional navigation system information failed with a NullPointerException.

2019.1

2019.1.04

Bug fixAviation Standards

LCD-11101
The behavior of TLcdSegmentBasedRoute.set3DEditablePolyline was incorrect: when the supplied polyline contained 2 or more existing points, some of these points were incorrectly included in the resulting route geometry.

2019.1

Upgrade considerationAviation Standards

LCD-10586
com.luciad.ais.model.TLcd2DBoundsIndexedModelList has been removed since it duplicated com.luciad.model.TLcd2DBoundsIndexedModelList. Existing usages of the removed class can simply be replaced with com.luciad.model.TLcd2DBoundsIndexedModelList.

2019.0

2019.0.07

Bug fixAviation Standards

LCD-10880
The DAFIFT data preparator tool TLcdDAFIFTDataPreparatorMain could cause a NullPointerException when encountering Refueling Track data (part of file ARF/ARF_PAR.TXT).

2019.0.06

ImprovementAviation Standards

LCD-10767
Added a "Select All" option to ease decoding of all AIXM data types at once in the samples.decoder.aixm.gxy sample.

2019.0

ImprovementAviation Standards

A new property separateFeatureTypes has been added to TLcdAIXM51ModelDecoder to support decoding AIXM 5.1 data as a model tree node, containing one model per separate feature type (airspace, airport/heliport, ...). This was already possible as a manual post-decoding step through a utility method in TLcdAIXM51MessageUtil, but it can now be done automatically by the decoder. Similarly, TLcdAIXM51ModelEncoder now also accepts model tree nodes containing one model per feature type.

2018.1

2018.1.16

Bug fixAviation Standards

The method to automatically sort time slices in decoded AIXM 5.1 models, TLcdAIXM51ModelDecoder#setAutoSortTimeSlices, was erroneously mapped on the behavior of TLcdAIXM51ModelDecoder#setAutoMergeFeatures.

2018.1.15

Bug fixAviation Standards

LCD-10636
Made the decoding of DAFIFT ATS Route data more robust in case of a missing route direction property.

Bug fixAviation Standards

LCD-10601
The method canCreateLayers in the sample Lightspeed layer factory class AISLayerFactory always assumed a non-null data model, which could lead to a NullPointerException.

Bug fixAviation Standards

Made the decoding of DAFIF(T) data more robust in case of a missing ICAO code property in holding, navaid, airspace and waypoint records.

2018.1.09

Bug fixAviation Standards

LCD-10544
Fixed a selection issue which occurs if there is imagery without terrain for AIXM5 airspaces in a 3D view.

2018.1.01

Bug fixAviation Standards

LCD-9562
Helipads without any location data are now being positioned using the related Heliport's location for better visualization.

2018.1

ImprovementAviation Standards

LCD-4633
The AIXM 3/4 sample (decoder.aixm.gxy) now includes AIXM 4.5 example data which gets loaded at startup.

ImprovementAviation Standards

LCD-10174
Improved the rendering of point-based AIXM 5.1 VerticalStructure features at large scales in GXY and Lightspeed views.

Bug fixAviation Standards

LCD-10130
Fixed an issue that prevented the rendering of VerticalStructure features with radius null in a Lightspeed 3D view; this also caused the logging of message "GLU tessellation error: 100155".

2018.0

2018.0.04

ImprovementAviation Standards

LCD-8792
TLcdAIXM51RouteSegmentTimeSlice.START_PROPERTY and TLcdAIXM51RouteSegmentTimeSlice.END_PROPERTY properties are now used to deduce the geometry of Route Segments when there is no TLcdAIXM51RouteSegmentTimeSlice.CURVE_EXTENT_PROPERTY property.

Bug fixAviation Standards

LCD-10005
Fixed an inconsistency between TLcdDAFIFModelDecoder#decode and TLcdDAFIFModelDecoder#canDecodeSource while decoding the data in a directory.

Bug fixAviation Standards

LCD-10064
Getting properties of a Military Training Route data could throw an exception, which has been fixed.

Bug fixAviation Standards

LCD-10058
TOUCHDOWN_ZONE_ELEVATION, TOUCHDOWN_ZONE_ELEVATION_UNIT and TRUE_BEARING properties in TLcdARINCRunwayDataProperties are now retrieved from Runway instead of RunwayDirection.

2018.0.03

Bug fixAviation Standards

LCD-6993
Fixed the handling of sunrise and sunset times in AIXM 5.1 timesheets in case of a Polar Day or Midnight Sun.

Bug fixAviation Standards

LCD-7281
To ease the visual recognition of restricted airspaces and to better align with common charting guidelines, AIXM 5.1 restricted airspaces (prohibited, restricted, danger area) are now painted with a striped red border in GXY views.

Bug fixAviation Standards

LCD-9673
Missing time zone information in AIXM 5.1 time slice dates was causing incorrect calculation of the active time slice. This issue is fixed by using UTC-0 as default time zone when the time zone is missing.

2018.0.02

ImprovementAviation Standards

LCD-6109
Improved labeling of ApronElement, RunwayElement and TaxiwayElement by using the associated element:
  • ApronElement: If there is an associated Apron, the value of TLcdAIXM51ApronTimeSlice.APRON_NAME_PROPERTY of Apron is used as name of the ApronElement.
  • RunwayElement: If there is an associated Runway, the value of TLcdAIXM51RunwayTimeSlice.NAME_PROPERTY of Runway is used as name of the RunwayElement.
  • TaxiwayElement: If there is an associated Taxiway, the value of TLcdAIXM51TaxiwayTimeSlice.NAME_PROPERTY of Taxiway is used as name of the TaxiwayElement.

ImprovementAviation Standards

LCD-9904
TLcdAIXM5AbstractAIXMMessage now implements the ILcdDataObjectIndexedModel interface which adds data object index support to AIXM 5 models.

ImprovementAviation Standards

LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.

ImprovementAviation Standards

LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.

ImprovementAviation Standards

LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.

ImprovementAviation Standards

LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.

Bug fixAviation Standards

LCD-6820
Fixed AIXM Basic Message and Digital NOTAM schema resources collision when configuring the model decoder to use a custom entity resolver for providing access to locally stored schema definitions.

Bug fixAviation Standards

LCD-6617
XLinks references with UUIDs are now converted to lower-case to be compliant with the gml:identifier values.

2017.1

2017.1.17

ImprovementAviation Standards

LCD-9895
The following ARINC object properties were added in support of version 19 of the ARINC 424 format:
  • TLcdARINCAirport/HeliportCommunicationHandler: TLcdARINCAerodromeCommunicationDataProperties.COMMUNICATION_TRANSMIT_FREQUENCY, TLcdARINCAerodromeCommunicationDataProperties.COMMUNICATION_RECEIVE_FREQUENCY
  • TLcdARINCEnrouteCommunicationHandler: TLcdARINCEnrouteCommunicationDataProperties.COMMUNICATION_TRANSMIT_FREQUENCY, TLcdARINCEnrouteCommunicationDataProperties.COMMUNICATION_RECEIVE_FREQUENCY
The handlers mentioned above were updated accordingly.

Bug fixAviation Standards

LCD-9785
TLcdFeaturedParachuteJumpArea.getValue("Segments") returns a list with null elements instead of segments data. This has been fixed.

Bug fixAviation Standards

LCD-9755
TLcdARINCModelDecoder: improved the accurateness of the canDecode method to detect non-ARINC text files.

2017.1.15

ImprovementAviation Standards

LCD-9861
A gravel runway pattern in the AIS data could not be distinguished from a normal viewing distance in a Lightspeed view. This has been fixed.

Upgrade considerationAviation Standards

LCD-9852
The following changes in our feature interface allows extended support in our ARINC domain model and decoder for version 18 of the ARINC 424 format.

Restrictive Airspace decoding is improved for start and end dates related fields (5.152 and 5.153):

  • TLcdARINCRestrictiveAirspaceDataProperties.START_END_DATE is divided into two separate properties; TLcdARINCRestrictiveAirspaceDataProperties.START_DATE, TLcdARINCRestrictiveAirspaceDataProperties.END_DATE.
  • TLcdARINCRestrictiveAirspaceDataProperties.START_END_INDICATOR is removed. Afterwards TLcdDateIndicator class became unnecessary and it is also removed.
  • "Change Date" capability is added which updates the record using the following record.

Runway decoding is improved for displacement threshold distance (5.69) and touchdown zone elevation (5.97) fields:

  • TLcdARINCRunwayDirectionDataProperties.RUNWAY_THRESHOLD_DISPLACEMENT_DISTANCE is renamed as THRESHOLD_DISPLACEMENT_DISTANCE.
  • TLcdARINCRunwayDirectionDataProperties.RUNWAY_THRESHOLD_DISPLACEMENT_DISTANCE_UNIT is renamed as THRESHOLD_DISPLACEMENT_DISTANCE_UNIT.
  • TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE and TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE_UNIT are removed. Use newer properties in TLcdARINCRunwayDirectionDataProperties.
  • TLcdARINCRunwayDirectionDataProperties.RUNWAY_TOUCHDOWN_ZONE_ELEVATION and TLcdARINCRunwayDirectionDataProperties.RUNWAY_TOUCHDOWN_ZONE_ELEVATION_UNIT are removed. Use properties in TLcdARINCRunwayDataProperties.

2017.1.12

ImprovementAviation Standards

LCD-9803
Improved airspace rendering performance by optimizing the underlying OGC SLD / Filter rendering pipeline.

ImprovementAviation Standards

LCD-9798

Restrictive Airspace Handler (TLcdARINCRestrictiveAirspaceHandler) now recognizes the National Security Area ('N') record in the Restrictive Airspace Type (REST TYPE) field. Instead of parsing as TLcdAirspaceType.UNKNOWN, the handler now uses TLcdAirspaceType.NATIONAL_SECURITY_AREA as value in this case.

Airport Handler (TLcdARINCAerodromeHandler) and Heliport Handler (TLcdARINCHeliportHandler) now also support Airport is joint Civil and Military ('J') record in the Public/Military Indicator (PUB/MIL) field. The handler now uses TLcdAerodromeOperationsType.JOINT as value in this case.

2017.1.10

Bug fixAviation Standards

LCD-9717
Adjacent Airspaces that have a geoborder as part of their confinement should have a coincident point if their common border ends in the geoborder. However, small deviations seem to be possible because of the way "start points" of subpoint lists are being handled. This has been fixed.

2017.1.09

Bug fixAviation Standards

LCD-9636
Fix so airspaces without a contributor airspace but with a base shape still are shown correctly when crossing the antimeridian.

2017.1.06

ImprovementAviation Standards

LCD-9687
The following ARINC object properties were added in our feature interface to allow extended support in our ARINC domain model and decoder for version 18 of the ARINC 424 format:
  • TLcdARINCHeliportHandler, TLcdARINCAerodromeHandler: ILcdARINCAerodromeFeature.ELEVATION
This corresponds to the following properties in the newer properties class:
  • TLcdARINCHeliportHandler: TLcdARINCHeliportDataProperties.ELEVATION
  • TLcdARINCAerodromeHandler: TLcdARINCAerodromeDataProperties.ELEVATION
The handlers mentioned above were updated accordingly.

2017.1.05

Bug fixAviation Standards

LCD-4372
Airspace volumes with segments that link to geographical borders are now correctly supported, by using the part of the geographical border that is closest to the previous and next airspace segment.

2017.1.03

ImprovementAviation Standards

LCD-9653
The built-in support for Eurocontrol's ADR extension schema has been upgraded from version 18.5 to 21.5, the latest version used by Eurocontrol NM.

ImprovementAviation Standards

The AIXM 5.1 decoder and encoder now provide out-of-the-box support for Eurocontrol's CFMU ADR message extension schema namespace http://www.eurocontrol.int/cfmu/b2b/ADRMessage.

Bug fixAviation Standards

LCD-9659, LCD-4170
Decoding and visualization of AIXM 5.1 airspace data containing GML point, curve or surface property links to other features is now supported.

2017.1.01

ImprovementAviation Standards

LCD-9552
TLcdARINCModelDecoder: improved the performance of the canDecode method.

2017.1

ImprovementAviation Standards

LCD-9363
The following ARINC object properties were added in our feature interface to allowed extended support in our ARINC domain model and decoder for version 18 of the ARINC 424 format:
  • TLcdARINCHeliportHandler: ILcdARINCAerodromeFeature.PAD_IDENTIFIER, ILcdARINCAerodromeFeature.PAD_DIMENSIONS
  • TLcdARINCDMEHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION, ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
  • TLcdARINCVORHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION, ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
  • TLcdARINCTACANHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION, ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
  • TLcdARINCNDBHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION, ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
  • TLcdARINCRunwayHandler: ILcdARINCRunwayDirectionFeature.TOUCHDOWN_ZONE_ELEVATION, ILcdARINCRunwayDirectionFeature.TOUCHDOWN_ZONE_ELEVATION_UNIT, ILcdRunwayDirectionFeature.TRUE_BEARING, ILcdARINCRunwayDirectionFeature.THRESHOLD_DISPLACEMENT_DISTANCE, ILcdARINCRunwayDirectionFeature.THRESHOLD_DISPLACEMENT_DISTANCE_UNIT
  • TLcdARINCRestrictiveAirspaceHandler: ILcdARINCAirspaceFeature.START_END_DATE, ILcdARINCAirspaceFeature.START_END_INDICATOR
  • TLcdARINCEnrouteAirwayHandler: ILcdARINCATSRouteSegmentFeature.SEQUENCE_NUMBER, ILcdARINCATSRouteSegmentFeature.FIX_IDENTIFIER, ILcdARINCATSRouteSegmentFeature.WAYPOINT_DESCRIPTION_CODE
  • TLcdARINCProcedureHandler: ILcdARINCProcedureFeature.TRANSITION_IDENTIFIER, ILcdARINCProcedureFeature.SUB_TYPE, ILcdARINCProcedureFeature.SUB_TYPE_QUALIFIER1, ILcdARINCProcedureFeature.SUB_TYPE_QUALIFIER2, ILcdARINCProcedureFeature.GNSS_FMS_INDICATOR
This corresponds to the following properties in the newer properties class:
  • TLcdARINCHeliportHandler: TLcdARINCHeliportDataProperties.PAD_IDENTIFIER, TLcdARINCHeliportDataProperties.PAD_DIMENSIONS
  • TLcdARINCDMEHandler: TLcdARINCDMEDataProperties.ILS_DME_BIAS, TLcdARINCDMEDataProperties.ILS_DME_BIAS_UNIT, TLcdARINCDMEDataProperties.FIR_IDENTIFIER, TLcdARINCDMEDataProperties.UIR_IDENTIFIER, TLcdARINCDMEDataProperties.FACILITY_ELEVATION, TLcdARINCDMEDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCDMEDataProperties.FACILITY_CHARACTERISTICS
  • TLcdARINCVORHandler: TLcdARINCVORDataProperties.FIR_IDENTIFIER, TLcdARINCVORDataProperties.UIR_IDENTIFIER, TLcdARINCVORDataProperties.FACILITY_ELEVATION, TLcdARINCVORDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCVORDataProperties.FACILITY_CHARACTERISTICS
  • TLcdARINCTACANHandler: TLcdARINCTACANDataProperties.FIR_IDENTIFIER, TLcdARINCTACANDataProperties.UIR_IDENTIFIER, TLcdARINCTACANDataProperties.FACILITY_ELEVATION, TLcdARINCTACANDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCTACANDataProperties.FACILITY_CHARACTERISTICS
  • TLcdARINCNDBHandler: TLcdARINCNDBDataProperties.FIR_IDENTIFIER, TLcdARINCNDBDataProperties.UIR_IDENTIFIER, TLcdARINCNDBDataProperties.FACILITY_ELEVATION, TLcdARINCNDBDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCNDBDataProperties.FACILITY_CHARACTERISTICS
  • TLcdARINCRunwayHandler: TLcdARINCRunwayDataProperties.TOUCHDOWN_ZONE_ELEVATION, TLcdARINCRunwayDataProperties.TOUCHDOWN_ZONE_ELEVATION_UNIT, TLcdARINCRunwayDataProperties.TRUE_BEARING, TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE, TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE_UNIT
  • TLcdARINCRestrictiveAirspaceHandler: TLcdARINCRestrictiveAirspaceDataProperties.START_END_DATE, TLcdARINCRestrictiveAirspaceDataProperties.START_END_INDICATOR
  • TLcdARINCEnrouteAirwayHandler: TLcdARINCATSRouteSegmentDataProperties.SEQUENCE_NUMBER, TLcdARINCATSRouteSegmentDataProperties.FIX_IDENTIFIER, TLcdARINCATSRouteSegmentDataProperties.WAYPOINT_DESCRIPTION_CODE
  • TLcdARINCProcedureHandler: TLcdARINCProcedureDataProperties.TRANSITION_IDENTIFIER, TLcdARINCProcedureDataProperties.SUB_TYPE, TLcdARINCProcedureDataProperties.SUB_TYPE_QUALIFIER1, TLcdARINCProcedureDataProperties.SUB_TYPE_QUALIFIER2, TLcdARINCProcedureDataProperties.GNSS_FMS_INDICATOR
The handlers mentioned above were updated accordingly.

Bug fixAviation Standards

LCD-9384
LCD-8432 introduced thread unsafe behavior when dealing with Procedures. This has been fixed.

2017.0

2017.0.06

Bug fixAviation Standards

LCD-9365
TLcdAerodromeType and TLcdAIXMAerodromeHandler now offer support for the fourth possible aerodrome type (according to the AIXM 4.5 specs), i.e. 'LS' (Landing Site).

Bug fixAviation Standards

LCD-9269
Fix for the type of route segment not being visualized in Lightspeed.

2017.0.05

Bug fixAviation Standards

LCD-9305
The TLcdDAFIFModelDecoder#canDecodeSource method didn't handle unsupported source file names well, so now it checks for supported as well as unsupported source file names.

2017.0.01

Bug fixAviation Standards

LCD-9245
TLcdARINCModelDecoder#canDecodeSource returns false incorrectly sometime due to LCD-8984. This has been fixed.

2017.0

ImprovementAviation Standards

LCD-7648
The performance of TLcdDAFIFModelDecoder#canDecodeSource has been improved.

ImprovementAviation Standards

LCD-8745
TLcdAIXM51GXYLayerFactory was added. This layer factory can create layers for AIXM5 data, using a default style.

Bug fixAviation Standards

LCD-9052
TLcdARINCModelDecoder#canDecodeSource is now more robust against non-arinc txt files.

Upgrade considerationAviation Standards

LCD-8780
TLcdDAFIFLayerConfiguration instances built with the default constructor now have more useful default styling properties, instead of painting all geometry in black. As this configuration is used by the TLcdDAFIFDefaultLayerFactory, it now also produces layers with more sensible default styling. Customizing the styling remains possible as before.

Upgrade considerationAviation Standards

LCD-8780
TLcdARINCLayerConfiguration instances built with the default constructor now have more useful default styling properties, instead of painting all geometry in black. As this configuration is used by the TLcdARINCDefaultLayerFactory, it now also produces layers with more sensible default styling. Customizing the styling remains possible as before.

Upgrade considerationAviation Standards

TLcdAIXMDefaultLayerFactory#isCreateLayerTreeNodes now returns true by default. This means that by default, ILcdLayerTreeNode instances will be created instead of (deprecated) ILcdGXYLayerList instances. This previous behavior can be restored by calling setCreateLayerTreeNodes with false as argument.

Upgrade considerationAviation Standards

TLcdARINCDefaultLayerFactory#isCreateLayerTreeNodes now returns true by default. This means that by default, ILcdLayerTreeNode instances will be created instead of (deprecated) ILcdGXYLayerList instances. This previous behavior can be restored by calling setCreateLayerTreeNodes with false as argument.

Upgrade considerationAviation Standards

LCD-8432
The behavior of TLcdProcedure3DGeometryCalculator has been modified to continue to climb or to descend depending of the type of procedure (IAP, STAR, SID) and to more align with reality.

Upgrade considerationAviation Standards

Support for the legacy AIXM 5.0 format has been discontinued. AIXM 5.0 was introduced in 2007 by FAA and Eurocontrol as an intermediary to validate a new approach. This has lead to the creation of the official AIXM 5.1 standard in 2010, which of course remains supported, together with AIXM 3.3 and 4.x. Any reference to classes in the com.luciad.format.aixm5 package need to be removed (not com.luciad.format.aixm51).

2016.1

2016.1.33

Bug fixAviation Standards

LCD-9080
Some files without way points could provoke Null Pointer Exception. This has been fixed.

2016.1.28

Bug fixAviation Standards

LCD-8984
TLcdARINCModelDecoder#canDecodeSource is now more robust against non-arinc txt files.

2016.1.26

ImprovementAviation Standards

LCD-8944
When requesting the altitude limits of an airpsace with invalid data, the error has now a meaningful message.

2016.1.25

Bug fixAviation Standards

LCD-8916
TLcdDAFIFModelDecoder did not close all opened inputstreams during decoding. This has been fixed.

2016.1.24

Bug fixAviation Standards

LCD-8878
ATS Route Segments that have rhumbline as type of path are now correctly visualized in Lightspeed views.

2016.1.20

Bug fixAviation Standards

LCD-8829
TLcdAssociationBasedAirspace methods could run into a stack overflow. This has been fixed.

2016.1.19

ImprovementAviation Standards

LCD-8804
It is now possible to set the default srsName to the AIXM 5/5.1 model decoders that will be used to determine the model reference if neither the first AIXM message member, its possible envelope or the possible envelope of the AIXM message has a srsName attribute set.

2016.1.18

ImprovementAviation Standards

LCD-8579
Altitude and Distance units of measure set through TLcdAltitudeUnit and TLcdDistanceUnit will be picked up and used in AIXM 5 calculation (ex: TLcdAIXM51VerticalStructurePart#getMaximumZ()). Also if a AIXM unit of measure (ex: TLcdAIXM51UomDistance) can not be converted, a warning will be logged.

ImprovementAviation Standards

LCD-6519
The XLinks support has been improved. XLinks pointing to the gml:identifier attribute are now resolved. Additionally the TLcdAIXM5LinkExpressionFactory and TLcdAIXM51LinkExpressionFactory have been added. You can override their compile method for custom xlinks resolution.

Bug fixAviation Standards

LCD-8791
Fixed NullPointerException when painting route segments containing null curve extent property.

Bug fixAviation Standards

LCD-8784
LCD-7356 didn't take into account for Association based Airspaces and Airspace Corridors. This has been fixed.

Bug fixAviation Standards

LCD-8783
If you provide a SLD file for a custom datatype for 3D visualization, it is not anymore necessary to provide a SLD for this datatype for 2D.

Bug fixAviation Standards

LCD-8779
TLcdAssociationBasedAirspace.toString() could generate a stack overflow, which has been fixed.

2016.1.12

Bug fixAviation Standards

LCD-8637
TLcdAIXM51ValDistanceVertical.getValue() returns the correct value even when it is negative one.

2016.1.10

Bug fixAviation Standards

LCD-8598
TLcdAIXM5VerticalStructurePart and TLcdAIXM51VerticalStructurePart getMinimumZ() and getMaximumZ() return the correct values.

Bug fixAviation Standards

LCD-8596
Standard meter altitude unit of measure doesn't provoke a Null Pointer Exception anymore in AIXM 5 and 5.1.

Bug fixAviation Standards

LCD-8553
Several fixes on DAFIFT decoding :
  • TLcdDAFIFTHoldingDecoder : empty turn direction is handled as not defined.
  • TLcdDAFIFTWayPointDecoder : doesn't fail on empty usage code.
  • TLcdDAFIFTAirspaceDecoder : logs errors instead of propagate them like other decoders.
  • TLcdDAFIFTVFRRouteDecoder : can return an empty model instead of null.
  • TLcdDAFIFTRunwayDecoder : a NullPointException has been fixed.

Bug fixAviation Standards

LCD-8549
TLcdARINCRunwayHandler will not throw a IndexOutOfBoundsException for runways without points.

Bug fixAviation Standards

LCD-8578
CM distance unit of measure doesn't provoke a Null Pointer Exception anymore in AIXM 5.1.

Bug fixAviation Standards

LCD-8233
TLcdARINCModelDecoder.canDecode is more robust.

2016.1.07

Bug fixAviation Standards

LCD-8523
Generating vertical structure snapshots does not provoke Null Pointer Exception anymore.

2016.1.05

Bug fixAviation Standards

LCD-8491
When decoders that implement ILcdDAFIFSubTypeFilteringDecoder had "subTypesToDecode" set, the expiration and effective dates were previously not set to the model descriptors. Now it is fixed and TLcdDAFIFAirspaceModelListDescriptor also implements ILcdDAFIFModelDescriptorSupport.

Bug fixAviation Standards

LCD-8472
TLcdAIXMModelDecoder.canDecode uses now the ILcdInputStreamFactory set to the decoder.

2016.1.03

ImprovementAviation Standards

LCD-8296
Added the Event extension schema for AIXM 5.1 resources to the AIXM5 optional module. The following namespace can now be used without a reference to their schema location: "http://www.aixm.aero/schema/5.1/event"

Bug fixAviation Standards

LCD-7946
A not thread safe use of DecimalFormat that was causing Route segments visualization artifacts is now fixed.

2016.1.02

Bug fixAviation Standards

LCD-8131
The decoding speed of data with several xlinks has been improved.

2016.1

ImprovementAviation Standards

LCD-8100
It is now possible to calculate procedures with a holding turn radius smaller than the radius used for the other turns with the new property in TLcdAircraftPerformanceSettings called Procedure turn radius.

Bug fixAviation Standards

LCD-8215
Avoid Null Pointer Exceptions when visualizing Airspaces as extruded shapes in a 3D Lightspeed view.

2016.0

2016.0.10

Bug fixAviation Standards

LCD-8039
Airspace Associations are now correctly visualized in 3D Lightspeed views as extruded shapes.

2016.0.07

ImprovementAviation Standards

LCD-7509
Improved visualization of route segments in 3D views. They are now rendered as 3D corridors, whose dimensions are determined based on the lowerLimit, upperLimit, widthLeft and widthRight properties of the route segment.

2015.1

2015.1.26

Bug fixAviation Standards

LCD-7539
Fixed NullPointerException when painting airspaces containing upperLimit and lowerLimit properties with null values.

2015.1.18

ImprovementAviation Standards

LCD-7284
Terrain elevation is now taken into account when visualizing AIXM 5.1 3D airspaces in a Lightspeed view, based on the information provided by their upper limit and lower limit reference properties.

Bug fixAviation Standards

LCD-7366
TLcdProcedureGeometryCalculator can handle CI/CF used to turn back aircraft at its current position.

Bug fixAviation Standards

LCD-7356
The usage or not of internal property retrievers in TLspAISStyler to retrieve geometries like GeometryRunwayBuffer for runways is not only determined on the model descriptor class anymore but also on the types from the model descriptor element types.

2015.1.16

ImprovementAviation Standards

LCD-7304
An improvement has been made in the modeling of the airspace domain object (see TLcdAirspace or its data type TLcdAISDataType#Airspace) that enables out-of-the-box, automatic encoding of the connected airspace geometry to GML (e.g., via TLcdGML32ModelEncoder); in the past, only the individual segments were encoded.

ImprovementAviation Standards

LCD-7304
Due to a change in the modeling of the airspace domain object (TLcdAirspace), AIXM airspaces that get exported to GML now also contain the connected airspace geometry, next to the individual segments.

ImprovementAviation Standards

LCD-7304
Due to a change in the modeling of the airspace domain object (TLcdAirspace), ARINC airspaces that get exported to GML now also contain the connected airspace geometry, next to the individual segment points.

Bug fixAviation Standards

LCD-6278
When handling a CI Leg, we check the current course. If the course was NaN, we set it to the leg course.

2015.1.15

Bug fixAviation Standards

LCD-7283
If you called the insertLegAt or removedLetAt methods of an TLcdDiscretizedLonLatGeoPath instance and then retrieve the polygon from the discretizator, the discretizator will take the change into account.

Bug fixAviation Standards

LCD-7267
To ease the visual recognition of restricted airspaces and to better align with common charting guidelines, AIXM 5.1 restricted airspaces (prohibited, restricted, danger area) are now painted as follows in Lightspeed views:
  • 2D: striped red border
  • 3D: solid red border and fill.

2015.1.14

ImprovementAviation Standards

LCD-7227
It is now possible to set a custom ALcdDiscretizedGeoPath to a TLcdAirspace. The ALcdDiscretizedGeoPath is used to discretize the airspace segments. Only instances of TLcdDiscretizedLonLatGeoPath are accepted right now.

2015.1.11

Bug fixAviation Standards

LCD-7150
The labels that indicate the altitude of the sectors on SafeAltitudeArea features are now always placed within the corresponding sector. Additionally, the default style for these labels has changed, allowing a higher level of customization.

2015.1.06

ImprovementAviation Standards

LCD-1021
Support for daylight savings time dependent times have been added to handle properties with schedules. A date in the included timesheet can now be set to EDLST or SDLST.

ImprovementAviation Standards

LCD-7112
Improved support for time zones when processing AIXM 5.1 messages. The generateSnapshot and updateSnapshotSFCT methods in TLcdAIXM51MessageUtil have been overloaded and it is now possible to pass a Calendar including time zone information instead of a Date.

2015.1.04

ImprovementAviation Standards

LCD-6158
Duplicate labels on arc angles that are shared between multiple adjacent safe altitude areas are not shown any more.

2015.1.02

ImprovementAviation Standards

LCD-6852
Temporal data without time zone information are now assumed to be in UTC. This ensures more deterministic behavior when generating snapshots.

Bug fixAviation Standards

LCD-7005
When handling a IF leg, TLcdProcedureGeometryCalculator will check the leg lower or the upper altitude to determine the starting altitude. If there is no altitude set to the IF leg, it will use the Z coordinate of the leg fix.

Bug fixAviation Standards

LCD-6959
Fixed issue with sunrise and sunset calculation for timesheets, where the calculated time would become negative in some conditions.

2015.1

Bug fixAviation Standards

LCD-6854
Decoding ARINC provoked some memory leaks, these were fixed.

2015.0

2015.0.11

Bug fixAviation Standards

LCD-6759
Fixed ADR schema resources collision when configuring the model decoder to use a custom entity resolver for providing access to locally stored schema definitions. This can now be configured by using TLcdXMLEntityResolver.

2015.0.09

ImprovementAviation Standards

LCD-6645
Improved the visualization of AIXM 5.1 SafeAltitudeArea features in Lightspeed views. The features are now rendered as filled arc bands in 2D and 3D, together with a set of labels that express the altitude, distances and angles of the SafeAltitudeArea's circle sector(s).

2015.0.06

ImprovementAviation Standards

LCD-6570
The transition to a FA, FC or FD leg will now try arrive on the line defined by the fix and the course of the leg instead of just changing the course.

Upgrade considerationAviation Standards

LCD-6624
The method copyExtraModelDescriptor from TLcdDAFIFModelDecoder was wrongly added to the public API and is now removed.

2015.0.04

ImprovementAviation Standards

LCD-5949
The different DAFIF models exposes currently a model descriptor that implements the new interface ILcdDAFIFModelDescriptorSupport. Model descriptors have now the effective and expiration date of the decoded models. These dates come from the VERSION file that can be present next to the root of a DAFIF data set.

ImprovementAviation Standards

LCD-5948
The different models decoded by TLcdARINCDecoder exposes currently a model descriptor that implements the new interface ILcdARINCModelDescriptorSupport. Model descriptors have now the expiration date and the cycle date of the decoded models.

2015.0.01

ImprovementAviation Standards

LCD-6469
For consistency, new model descriptors are added for the following DAFIF models:
  • ILSDME
  • Localizer
  • Glide Path
  • Marker
  • VFR Route
  • VFR Offset
  • Refueling track
  • Refueling Airspace

Bug fixAviation Standards

LCD-4630
For ILcdRoute that contain one polyline only, TLcdGXYRoutePainter will set the anchor point to the middle of the polyline, which improves the pin location for labels.

2015.0

ImprovementAviation Standards

LCD-6148
Improved visualization of point based vertical structures in 3D views. They are now rendered as cylinders, whose dimensions are determined based on the vertical structures properties.

2014.1

2014.1.06

ImprovementAviation Standards

LCD-6283
TLcdProcedureGeometryCalculator has now different behaviors to calculate CF Legs. The current behaviors are :
  • Minimal Distance :the aircraft will use the shortest path to go onto the fix on the specified course.
  • Follow Course : the aircraft will get on the specified course at an early stage. This is the behavior by default.

2014.1.04

Bug fixAviation Standards

LCD-6247
When a leg transition is fly over onto an arc, TLcdProcedureGeometryCalculator tries to avoid unnecessary turns.

2014.1.02

ImprovementAviation Standards

LCD-5722
Improved default behavior for snapshot generation in TLcdAIXM51MessageUtil when creating snapshots for features that have a timesheet, without an explicit dayMatch parameter. This now matches any day to allow for more accurate snapshots.

Bug fixAviation Standards

LCD-6133
When decoding a ARINC record provoke exception, the level of logging is reduced from error to warning.

2014.1.01

ImprovementAviation Standards

LCD-5182
TLcdARINCLocalizerGlideSlopeHandler will not add a glide path to an ILS during decoding if the ILS category indicates that there is no glide path or if the glide path does not have a valid latitude and longitude.

2014.0

2014.0.07

Bug fixAviation Standards

LCD-5801
TLcdDAFIFLoader doesn't throw a cast exception anymore during the decoding of a DAFIFT file when a decoder config file isn't provided.

2014.0.05

ImprovementAviation Standards

LCD-5738
Added the ADR extension schema resources to the AIXM5 optional module. The following namespaces can now be used without a reference to their schema location: "http://www.aixm.aero/schema/5.1/extensions/ADR", "http://www.aixm.aero/schema/5.1/extensions/EUR/ADR" and "http://www.aixm.aero/schema/5.1/extensions/EUR/ADR/message"

2014.0.04

ImprovementAviation Standards

LCD-5128
Improved styler performance for lightspeed views when viewing AIXM 5.1 for certain srs-codes.

2014.0.03

Bug fixAviation Standards

LCD-5676
In the case of DF as first leg after the IF, the geometry calculation leg will calculate a course if there is no initial course set instead of producing a error line.

Bug fixAviation Standards

LCD-5716
In some cases, ICAO navaid labels could be cut off at the bottom.

2014.0.02

Bug fixAviation Standards

LCD-5705
TLspAIXMStyler: when using multiple stylers in different threads, the stylers could sometimes block.

2014.0

ImprovementAviation Standards

LCD-5229
More local horizontal datum codes are recognized during the decoding of DAFIF files. All horizontal datum codes are now supported, except for "IND", "LCF", "SOA" and "SGS".

ImprovementAviation Standards

ARINC MORA data is now decoded and visualized. The data type is TLcdARINCDataTypes#MORA, which extends from the new AreaMinimumAltitude type in AIS. See TLcdARINCMORAHandler for details on the decoding.

It is visualized in Lightspeed and GXY layers using labels that denote thousands and hundreds for feet. See TLspAISStyler and TLcdARINCLayerConfiguration for details on how to customize styling.

ImprovementAviation Standards

You can now model area-based minimum safety altitudes in AIS. This can be used to model any area-, cell- or quadrangle-based minimum safety altitudes, such as: MORA (Minimum Off-Route Altitude), ORTCA (Off-Route Terrain Clearance Altitude), MEF (Maximum Elevation Figure), AMA (Area Minimum Altitude). The interpretation of the altitudes is not defined in AIS. For example, it is not specified if obstacles are included, and how much margin is added.

See ILcdAreaMinimumAltitude, TLcdAISDataTypes#AreaMinimumAltitude or the AIS Developer's Guide for details.

It is visualized in Lightspeed and GXY layers using labels that denote thousands and hundreds for feet. See TLspAISStyler for details on how to customize styling.

ImprovementAviation Standards

LCD-5148
Support has been added to decode obstacle data. A new object handler has been added for this, TLcdAIXMObstacleHandler. It is registered by default on the main AIXM model decoder, TLcdAIXMModelDecoder. A dedicated model descriptor and a convenience class listing all decoded obstacle properties can be found in the com.luciad.format.aixm.model.obstacle package.

ImprovementAviation Standards

The TLcdAIXMModelDecoder now has all available object handlers registered by default. This means you can use it to decode everything, without additional configuration. You can still register your own handlers. In this case, the default handlers are ignored.

ImprovementAviation Standards

There now is a convenience TLcdARINCModelDecoder that decodes every object type without additional configuration. You can still use the existing TLcdARINCDecoder for full control.

ImprovementAviation Standards

There now is a convenience TLcdDAFIFModelDecoder that decodes every object type without additional configuration. It can decode:
  • A DAFIF file, for example FILE0
  • A DAFIFT file, for example ARPT/ARPT.TXT
  • A directory containing DAFIF or DAFIFT files
  • A .toc file pointing to DAFIF or DAFIFT files
  • A .toc file in a directory with subdirectories containing DAFIF or DAFIFT files

The TLcdDAFIFModelDecoder produces lazy-loading models, so the actual data is only loaded when accessed, for example by the view or layer.

You can still use the existing TLcdDAFIF...Decoder classes for full control.

ImprovementAviation Standards

You can now visualize AIS data with ICAO styling natively in a Lightspeed view. Please refer to TLspAISStyler, the AIS Developer's Guide or the "ais.lightspeed" sample for more details.

ImprovementAviation Standards

You can now visualize AIXM data with ICAO styling natively in a Lightspeed view. Please refer to TLspAIXMLayerBuilder or the AIXM Developer's Guide for more details.

ImprovementAviation Standards

You can now visualize ARINC data with ICAO styling natively in a Lightspeed view. Please refer to TLspARINCLayerBuilder or the ARINC Developer's Guide for more details.

ImprovementAviation Standards

Improved navaid labels in a similar way as done for LCD-4467: The background now has a greater margin to improve readability.

Bug fixAviation Standards

TLcdARINCEnrouteAirwayHandler could throw a NPE when no DME/TACAN/VOR/NDB model is set.

Bug fixAviation Standards

TLcdARINCHoldingHandler.setRunwayModel() would throw a NPE when calling it with a null reference.

2013.1

2013.1.48

Bug fixAviation Standards

LCD-5099
The TLcdAIXMDefaultLayerFactory constructors had ambiguous javadoc concerning the usage of the properties parameter. It is more clear now that the constructors use the properties parameter to configure general layer properties and styling properties as well.

2013.1.47

Bug fixAviation Standards

LCD-5336
TLcdDiscretizedLonLatGeoPath and TLcdDiscretizedLonLatOpenGeoPath no longer fail in case of incomplete GeoPath segments of type ARC_BY_EDGE; instead, a log entry is written to indicate the incomplete data. This primarily affects airspace creation and decoding, which relies on the GeoPath functionality

2013.1.45

Bug fixAviation Standards

LCD-5369
Due to a regression introduced by fix LCD-5269, the transition towards a CF leg sometimes produce unexpected trajectory turns.

2013.1.44

ImprovementAviation Standards

The robustness of 3D airspace visualization has been improved.

2013.1.43

Bug fixAviation Standards

LCD-5314
The course, turn direction and distance/duration parameters of a PI were not correctly interpreted and applied according to the ARINC 424 procedure specification.

2013.1.40

ImprovementAviation Standards

LCD-5271
The TLcdAltitudeReference#toString() method now returns a short, well-known abbreviation for each of the listed references, for easy reuse inside a label.

Bug fixAviation Standards

LCD-5269
The transition towards a CF, PI or PT leg did not always respect the leg's turn direction.

Bug fixAviation Standards

LCD-4846
Fixed problem that would occur when opening AIXM 5.0 files with Java JDK 8.

2013.1.37

ImprovementAviation Standards

LCD-5180
Support has been added to create SLD styles that filter on AIXM 5 feature ID in a generic manner.

ImprovementAviation Standards

LCD-5162
Improved styling of inactive airspaces for AIXM 5.0 in Lightspeed views. Also made sure that inactive airspaces are now styled as red in AIXM 5.1 for Lightspeed views.

2013.1.35

ImprovementAviation Standards

LCD-5154
The procedure leg transition between a procedure turn (PI or PT leg) and a course to a fix (CF leg) has been improved; the transition now maintains the parallellism of the procedure turn while intercepting with the next course.

ImprovementAviation Standards

LCD-5137
The AIXM procedure handler (TLcdAIXMProcedureHandler) now decodes the Runway, FATO and TLOF direction designators that can be associated with a procedure. These designators can be access via the corresponding data properties introduced in TLcdAIXMProcedureDataProperties.

2013.1.34

Bug fixAviation Standards

LCD-5135
Procedure leg transitions passing a fix did not always properly followed the configured fix overfly type; if a fly by was configured, a fly over was used in case of large course changes (> 120 degrees).

2013.1.31

ImprovementAviation Standards

LCD-5052
An improvement has been made in the modeling of the ATS route domain object (see TLcdATSRoute or its data type TLcdAISDataType#ATSRoute) that enables out-of-the-box, automatic encoding of the connected route geometry to GML (e.g., via TLcdGML32ModelEncoder); in the past, only the individual route points were encoded.

ImprovementAviation Standards

LCD-5052
Due to an improvement in the modeling of the ATS route domain object (TLcdATSRoute), AIXM route data that gets exported to GML now also contains the connected route geometry, next to the individual route points.

ImprovementAviation Standards

LCD-5052
Due to an improvement in the modeling of the ATS route domain object (TLcdATSRoute), ARINC route data that gets exported to GML now also contains the connected route geometry, next to the individual route points.

ImprovementAviation Standards

LCD-5052
Due to an improvement in the modeling of the ATS route domain object (TLcdATSRoute), DAFIF(T) route data that gets exported to GML now also contains the connected route geometry, next to the individual route points.

Bug fixAviation Standards

LCD-5104
The DAFIF RefuelingTrackPoint type has a data property Navaid Type which has now values of type String in place of type TLcdNavaidType.

Bug fixAviation Standards

LCD-5105
The ORTCA painted shape is now a closed shape.

2013.1.24

Bug fixAviation Standards

LCD-4993
Fixed issue with label-painting. In some instances the identifier would get mistaken for the type. This is now corrected.

2013.1.23

ImprovementAviation Standards

LCD-4467
Improved airspace labels. The background now has a greater margin to improve readability.

2013.1.20

ImprovementAviation Standards

LCD-4478
Improved rendering of vertical structures that contain no height information in 3D views.

ImprovementAviation Standards

LCD-4479
The bounds of an AIXM5 feature will now return the bounds of the envelope if the feature does not contain any geometry. If no envelope is defined, it will return undefined bounds instead. This also implies that features without any geometry that have an envelope (such as Taxiways, Aprons and Runways) now will have a valid focus point.

2013.1.18

Bug fixAviation Standards

LCD-4857
Fixed threading issue for labeled Airspace features in Lightspeed views.

2013.1.01

Bug fixAviation Standards

LCD-4483
Fixed NPE that could occur when previewing an AIXM 5.x file with Navaids with limited time-span.

Bug fixAviation Standards

LCD-4520
Fixed a potential error in TLcdProcedureGeometryCalculator when connecting CI and AF legs in cases where the latter has a very large radius.

2013.1

ImprovementAviation Standards

LCD-4453
To improve the icon quality of certain icons, we have increased the size of most vector icons to be 17x17 instead of 16x16. This allows certain icons (such as cross-hairs) to be pixel perfect and correctly centered.

2013.0

2013.0.21

ImprovementAviation Standards

LCD-4334
TLcdAIXM51AbstractAIXMMessage.getModelEncoder() no longer returns null when it has been decoded by the TLcdAIXM51ModelDecoder, but an instance of TLcdAIXM51ModelEncoder.

2013.0.19

Bug fixAviation Standards

LCD-4250
The DAFIF(T) ILS and Navaid decoders did not take into account the implicit decimal for the frequency value.

2013.0.06

Bug fixAviation Standards

LCD-3872
Fixed ClassCastException that would occur in some rare conditions.

2013.0.01

Bug fixAviation Standards

LCD-3923
The procedure leg transition between an AF and a subsequent TF leg did not properly take into account the fixOverflyType property of the AF leg. It always assumed a FLY_OVER value.

2013.0

ImprovementAviation Standards

LCD-2746
Runways that are specified in the data will no longer be moved to (0,0), instead they will have an undefined bounds. As a result, setting a bounds filter will filter out these objects.

ImprovementAviation Standards

LCD-3180
The AIXM 5.1 and 5.0 GXY samples have been merged into a single AIXM 5 sample that focuses mainly on the latest version, which is 5.1. The support for the AIXM 5.0 format remains unchanged, so AIXM 5.0 files can still be decoded and visualized by the new sample.

Bug fixAviation Standards

LCD-948
The global bounds of a decoded AIXM 5 message was not correct in case some of its features did not have bounds on their own.

2012.1

2012.1.09

Bug fixAviation Standards

LCD-3556
The DAFIFT loader panel did not support subtype decoding when loading a dataset without organization in ICAO subdirectories.

Bug fixAviation Standards

LCD-3553
TLcdDAFIFTSpecialUseAirspaceDecoder did not set a correct display name on subtype models.

2012.1.08

Bug fixAviation Standards

LCD-3532
A difference in the determination of the number of points between TLcdProcedureTrajectory#getPointCount and TLcdProcedureTrajectory#getPoint() could lead to inconsistencies.

2012.1.06

Bug fixAviation Standards

The AIXM airspace decoder, TLcdAIXMAirspaceHandler, could not correctly parse decimal distance values in case of a decimal symbol mismatch between the active locale in Java and the underlying OS.

2012.1.05

ImprovementAviation Standards

LCD-3454
The domain objects to represent and calculate the geometry of procedures and airspaces, i.e. TLcdProcedureTrajectory, TLcdDiscretizedLonLatGeoPath and TLcdDiscretizedLonLatOpenGeoPath, now implement ILcdInvalidateable. This interface offers a general mechanism to invalidate any cached values in a domain object after any external changes - in this case, the calculated geometry.

Bug fixAviation Standards

LCD-986
Editing circle shapes on the map was interpreted the same way as arcs, leading to undesired editing handles which caused exceptions when touched.

Bug fixAviation Standards

LCD-1626
The airspace domain object TLcdAssociationBasedAirspace was not safe to use across multiple threads in parallel.

2012.1.02

Bug fixAviation Standards

LCD-3065
The implementation of ILcdExtrudedShape by TLcdAIXM5xVerticalStructurePart has been improved to be more consistent with how AIXM 5 data should be interpreted: the maximum Z corresponds to the elevation of the elevated point, surface or curve, while the minimum Z is the maximum Z minus the vertical extent.

There will not be an impact on 3D visualization because the vertical structures are already moved during visualization to be aligned with the terrain.

2012.1.01

Bug fixAviation Standards

The formatting of TLcdAIXM51ValDistanceVertical is now always locale independent. In some cases, the wrong decimal value separator was used.

2012.1

ImprovementAviation Standards

AIXM data can now be visualized in a Lightspeed view using the new TLspAIXMStyler. This is demonstrated in the new decoder.aixmcommon.lightspeed sample.

Upgrade considerationAviation Standards

LCD-954
The 'getShape(int)' method of TLcdSegmentBasedRoute will no longer return the ILcd3DEditablePolyline that was set with 'set3DEditablePolyline' for all indices. It will return a new clone of this instance for each separate index instead. This makes this domain object thread safe for reading and avoids exceptions at runtime.

2012.0

2012.0.19

Bug fixAviation Standards

LCD-2966
Circular airspaces were painted as arcs instead of circles.

2012.0.17

Bug fixAviation Standards

LCD-2864
The turn direction of a procedure turn leg was not correctly taken into account when it was explicitly set to LEFT or RIGHT.

Bug fixAviation Standards

LCD-2800
Procedure decoding will no longer fail if a bounds filter is used and the decoded procedure does not have a bounds.

Bug fixAviation Standards

LCD-2800
Procedure decoding will no longer fail if a bounds filter is used and the decoded procedure does not have a bounds.

2012.0.15

ImprovementAviation Standards

LCD-2803
The procedure transition from an aircraft position to an arc segment (for instance, defined by an Arc-to-Fix) has been improved. The transition is now done on the side of the arc that is closest to the current position of the aircraft.

ImprovementAviation Standards

LCD-2802
The procedure transition between an intercept leg (Course-to-Intercept or Heading-to-Intercept) and a Course-to-Fix (CF) leg has been improved in the case the aircraft's position is already very close to the path to be intercepted.

ImprovementAviation Standards

LCD-2796
The procedure transition between an Arc-to-Fix (AF) and Course-to-Fix (CF) leg has been improved. The transition is now done on the side of the arc that is closest to the destination fix of the CF leg, to avoid following the arc until the destination course of the CF leg is intercepted at the complete opposite of the destination position.

Bug fixAviation Standards

LCD-2801
The procedure transition from an aircraft position to a line segment (for instance, defined by a Track-to-Fix) sometimes generated an unexpected S-curve at the start of this segment.

2012.0.11

ImprovementAviation Standards

LCD-2629
The discretization step size used by TLcdProcedureGeometryCalculator to discretize procedure arcs can now be configured through the new methods set/getDiscretizationResolutionAngle.

ImprovementAviation Standards

The default constructors for the AIXM 5.x message and geometry classes (e.g. TLcdAIXM51AbstractAIXMMessage, TLcdAIXM51Point, TLcdAIXM5ElevatedSurface, ...) now set the model reference or srs by default to "urn:ogc:def:crs:EPSG::4326". This is the default WGS84 geodetic reference with lat/lon axis order, and is defined to be the default reference for AIXM 5.x data. Do note that you still need to ensure that the correct reference is set when using GML geometries, as there is no default reference defined for GML.

2012.0.09

ImprovementAviation Standards

LCD-2604
The Marker ARINC handler (TLcdARINCMarkerHandler) can now cope with records that do not specify the Marker type (although this is required by the specification). Instead of causing an error, the handler now uses TLcdMarkerType.UNKNOWN as value in this case.

ImprovementAviation Standards

LCD-2603
The ILS ARINC handler (TLcdARINCLocalizerGlideSlopeHandler) can now cope with records that do not specify the ILS category type (although this is required by the specification). Instead of skipping the record, the handler now uses TLcdILSMLSCategoryType.UNKNOWN as value in this case.

ImprovementAviation Standards

LCD-2603, LCD-2604
The type safe enumeration classes TLcdMarkerType and TLcdILSMLSCategoryType have both been extended with an UNKNOWN value, to represent respectively an unknown marker or ILS / MLS category.

Bug fixAviation Standards

LCD-2602
The handling of ILS references in procedure records (if present) could cause a ClassCastException in TLcdARINCProcedureHandler.

Bug fixAviation Standards

The decoding of enroute communication records has been made more robust with respect to empty feature values. Additionally, the class javadoc of TLcdARINCEnrouteCommunicationHandler did not correctly mention the key features that are used to uniquely identify decoded objects.

2012.0.08

ImprovementAviation Standards

LCD-2516
The holding entry point for procedure trajectories is determined more accurately, to obtain a smooth connection between the previous leg and the holding.

ImprovementAviation Standards

The default AIXM rendering settings in TLcdAIXMDefaultLayerFactory / TLcdAIXMLayerConfiguration have been updated to a more useful initial configuration. In the past, black was mostly used as default color.

Bug fixAviation Standards

LCD-2531
The TLcdARINCRunwayHandler has been made more robust with respect to incorrect runway direction bearing values; the handler now identifies and logs incorrect values, instead of failing with an exception.

Bug fixAviation Standards

LCD-2515
The points of a calculated holding entry were not always added in the right order to the point list of a procedure trajectory. This did only impact the inspection of the procedure trajectory points through its ILcdPointList interface, not through its processProcedureGeometry method.

Bug fixAviation Standards

LCD-1660
The decoding of runway endpoints has been improved to include the correct elevation in all cases. This may improve the geometry calculation of SID procedures that start with a CA leg in certain cases, as the length of such legs may now be shorter.

2012.0.04

ImprovementAviation Standards

LMAP-6096
TLcdAIXM51ValDistanceVertical now supports using TLcdAltitudeUnit to specify the uom. TLcdAltitudeUnit is commonly used by other AIS formats to specify unit of measures for vertical distances.

ImprovementAviation Standards

LMAP-6098
TLcdAIXM51ValDistanceVertical now properly formats values that are set using the 'setValue(double)' method, to be compliant with the AIXM 5.1 schema. This does not affect the formatting if the value is decoded from file, or set using another method.

ImprovementAviation Standards

The TLcdAirspaceActivityType type safe enumeration class now has a new methods: 'getCode()'. This method allow working with the acronyms or codes that are in general use by the aviation community, and simplify encoding/decoding of files using these codes.

ImprovementAviation Standards

The TLcdAirspaceType type safe enumeration class now has two new methods: 'getCode()' and a static 'valueOf( String aCode )'. These methods allow working with the acronyms or codes that are in general use by the aviation community, and simplify encoding/decoding of files using these codes.

ImprovementAviation Standards

LMAP-6088
A transformation sample from AIXM 3.3/4.5 to 5.1 has been added to the samples. It supports transforming both airspaces and aerodromes, but should be sufficiently extensible so you can add your own transformations.

Bug fixAviation Standards

TLcdAISDataTypes did not include TLcdNavaidType#ILS_DME as possible value for the navaid type data property, which prevented its use as data property value in practice.

2012.0.01

Bug fixAviation Standards

LMAP-6045
TLcdDAFIFRunwayDecoder: missing true bearing information required to calculate the position of a runway's arresting gear no longer results in a NullPointerException. If the information is missing, the arresting gear will not be registered on the runway, and a corresponding data issue will be added to the log (see ILcdDAFIFDecoder#getErrorMessage()).

11.0

11.0.28

ImprovementAviation Standards

Airspace volumes that use buffers and occur in an aggregated airspace are now also supported for visualization.

11.0.27

ImprovementAviation Standards

LMAP-5755
The DAFIFT decoders have been made more robust to avoid exceptions when encountering unexpected record field counts.

11.0.16

ImprovementAviation Standards

LMAP-5708
The computation of procedure trajectories has seen some general improvements to increase the quality, and to ensure consistency when comparing between different LuciadMap versions.

ImprovementAviation Standards

LMAP-5696
Improved the AIXM 5.x airspace painting style to be more inline with ICAO guidance and airspace styles of the other AIS formats.

11.0.14

Bug fixAviation Standards

The default AIXM 5 label color has been fixed to be white everywhere. This was already the case in previous versions, and has always been the default in Lucy.

11.0

ImprovementAviation Standards

All SLD's used with AIXM 5.x should now be specified relative to the feature instead of the time slice. This makes it possible to define time based styles.

10.1

10.1.26

Bug fixAviation Standards

LMAP-5290
TLcdGXYOutlinePolylineLabelPainter's halo functionality was broken.

10.1.14

ImprovementAviation Standards

The 2D boundary computation for aggregated airspaces now only applies subtractions that cover the full vertical extent of the other parts. This ensures that the 2D visualization will always cover the full outline of the airspace.

10.1.10

ImprovementAviation Standards

LMAP-5232
Improved decoding support for procedures in the latest DAFIFT releases.

Bug fixAviation Standards

LMAP-5227
The TLcdAIXM51ModelEncoder and TLcdAIXM5ModelEncoder now respect the format constraints for extensions of xsd:decimal types imposed by the different patterns in the type definition in the AIXM schema. Before this fix, values of such types (ValPCNBaseType, ValFrictionBaseType and CodeRNPBaseType (for AIXM51), CodeRNPType, NoNumberType, NoSequenceType, ValPCNType and ValFrictionType (for AIXM5)) were just formatted as doubles. Depending on the value, this could result in schema-invalid documents being generated by the encoder.

Bug fixAviation Standards

LMAP-5233
The canDecodeSource method of the ARINC decoder now only reads a fixed number of bytes from the file. This avoids reading too many bytes when files without new lines are tested with this method.

Bug fixAviation Standards

An exception could occur when painting detailed labels for navaids or airspaces. This has been fixed.

10.1.08

ImprovementAviation Standards

LMAP-5162
The computation of the geometry of aggregated airspaces has been made more robust for surfaces that use circular arcs.

10.1.06

ImprovementAviation Standards

LMAP-5145
The DAFIFT decoder will no longer log a warning when a model has no bounds. Only when errors occurred during decoding of that model, a warning will be logged. Models can have no bounds if you for instance decode NDB navaids for a region that has no NDB navaids.

10.1.05

ImprovementAviation Standards

LMAP-5098
Improved the javadoc for property accessors (getters and setters) on the domain model objects.

Bug fixAviation Standards

Fixes the exceptions that were thrown by the TLcdAIXM51MarkingBuoyTimeSlice#designator, TLcdAIXM51FASDataBlock#codeICAO, TLcdAIXM51FASDataBlock#referencePathIdentifier and TLcdAIXM51FASDataBlock#routeIndicator, TLcdAIXM5Association#remoteSchema properties accessors.

10.1.04

ImprovementAviation Standards

The AIXM 5.0 and 5.1 XPath label painters now correctly use the default time slice provider to retrieve a time slice from the feature. This time slice is now used as the object on which the expressions are evaluated. This is consistent with all other painters.

10.1.03

Bug fixAviation Standards

LMAP-5063
The ARINC procedure decoder no longer applied the proper filtering to the procedure trajectories. This regression was introduced in LuciadMap 10.1. The previous behaviour has now been restored.

Bug fixAviation Standards

LMAP-5062
Extensions of ARINC handlers such as TLcdARINCEnrouteAirwayHandler caused compilation issues about a missing implementation for a package visible abstract method. These issues should no longer occur.

10.1.01

ImprovementAviation Standards

LMAP-4965
Decoding of ILS-DME navaids is now also supported by the TLcdARINCDMEHandler. Decoded objects will have the navaid class set to a new class: ILS_DME.

10.1

ImprovementAviation Standards

A new concept has been introduced to make it easier to retrieve a useful time slice from an AIXM feature. Quite often, application developers are confronted with the problem of having to determine a suitable time slice for the visualization of features or properties of features. The new ILcdTimeSliceProvider interface can be used to encapsulate such a strategy that can be used throughout the application.

To make the provider accessible at places where it is needed, two options are provided:

  • A default time slice provider can be set on an AIXM 5.0 or 5.1 feature. This provider can be requested from the feature whenever it is needed.
  • A time slice provider can be passed onto the objects that need it; for instance, all AIXM painters and XPath factories can now be configured with a time slice provider. When set, these time slice providers have precedence over the default time slice providers on the features.

Two implementations are available that implement the currently most common strategies. The first one returns one of the time slices in the list of time slices in the feature - normally this will be a baseline time slice, assuming that it is available. The second one can be configured with a date, and will return a snapshot time slice valid for that date, or no time slice if the feature does not have valid time slices for that date.

ImprovementAviation Standards

It is now possible to configure the styling of AIXM 5.0 and 5.1 features on the painter providers TLcdAIXM5PainterEditorProvider and TLcdAIXM51PainterEditorProvider. The styling has to be defined as an OGC SLD feature type style. SLD is a very powerful rule-based styling mechanism developed by the OGC, and is defined as an XML format. LuciadMap already provided extensive support for OGC SLD, but it is now also fully integrated with AIXM to style features.

The AIXM painters not only allow setting a style but also allow access to predefined styles. This makes it easier for application developers to allow style customization, as they can allow their users to customize an existing style instead of having to write one from scratch.

ImprovementAviation Standards

Data types for the DAFIF and DAFIFT domain model objects are now available in the TLcdDAFIFDataTypes and TLcdDAFIFTDataTypes classes. For each DAFIF/DAFIFT type, a specific class that contains all properties has also been added (e.g., TLcdDAFIFAirspaceDataProperties). DAFIF model decoders with a default configuration will now return objects that implement ILcdDataObject and that have a DAFIF data type.

Existing users of the DAFIF/DAFIFT decoders that depend on specific properties of the ILcdFeatured-based implementation can ensure backwards compatibility by setting a custom implementation of the now deprecated ALcdAISObjectFactory on the handlers. An example would be to set a very basic extension of the TLcdAISLonLatHeightObjectFactory on all decoders. This will result in objects with an unknown data type that should only be accessed through the ILcdFeatured interface.

This backwards compatible mode is not recommended for general use, but might be necessary for users of certain functionality. The most important example is the use of certain methods on the DAFIF/DAFIFT decoders that allow setting the features to be decoded, such as the method setAerodromeFeaturesToBeDecoded. These methods are still available, but in the new decoder configuration the decoded features will always have the same number of features. Also, the ordering of the features will no longer depend on the ordering of the feature names that are passed to this method. These features will be fixed and determined by the data type. This behavior is not changed if you use the backwards compatible mode described above.

ImprovementAviation Standards

Data types for the ARINC domain model objects are now available in the TLcdARINCDataTypes class. For each ARINC type, a specific class that contains all properties has also been added (e.g., TLcdARINCAirspaceDataProperties). ARINC model decoders with a default configuration will now return objects that implement ILcdDataObject and that have a ARINC data type.

Existing users of the ARINC decoders that depend on specific properties of the ILcdFeatured-based implementation can ensure backwards compatibility by setting a custom implementation of the now deprecated ALcdAISObjectFactory on the handlers. An example would be to set a very basic extension of the TLcdAISLonLatHeightObjectFactory on all decoders. This will result in objects with an unknown data type that should only be accessed through the ILcdFeatured interface.

This backwards compatible mode is not recommended for general use, but might be necessary for users of certain functionality. The most important example is the use of certain methods on the ARINC handlers that allow setting the features to be decoded such as setAerodromeFeatureNamesToBeDecoded. These methods are still available, but in the default decoder configuration the decoded features will always have the same number of features. Also, the ordering of the features will no longer depend on the ordering of the feature names that are passed into this method. These attributes will be fixed and determined by the data type. This behavior is not changed if you use the backwards compatible mode described above.

ImprovementAviation Standards

Data types for the AIXM domain model objects are now available in the TLcdAIXMDataTypes class. For each AIXM type, a specific class that contains all properties has also been added (e.g. TLcdAIXMAirspaceDataProperties). AIXM model decoders with a default configuration will now return objects that implement ILcdDataObject and that have an AIXM data type.

Existing users of the AIXM decoders that depend on specific properties of the ILcdFeatured-based implementation can ensure backwards compatibility by setting a custom implementation of the now deprecated ALcdAISObjectFactory on the handlers. An example would be to set a very basic extension of the TLcdAISLonLatHeightObjectFactory on all decoders. This will result in objects with an unknown data type that should only be accessed through the ILcdFeatured interface.

This backwards compatible mode is not recommended for general use, but might be necessary for users of certain functionality. The most important example is the use of certain methods on the AIXM handlers that allow setting the features to be decoded such as setAerodromeFeatureNamesToBeDecoded. These methods are still available, but in the default decoder configuration the decoded features will always have the same number of features. Also, the ordering of the features will no longer depend on the ordering of the feature names that are passed into this method. These attributes will be fixed and determined by the data type. This behavior is not changed if you use the backwards compatible mode described above.

ImprovementAviation Standards

LMAP-2927
The AIS domain model now implements ILcdDataObject, the new interface in LuciadMap to provide generic access to an object's properties. Corresponding data types for the AIS domain model are now available in the TLcdAISDataTypes class.

New classes TLcdAISDataObjectFactory and ALcdAISGeometryFactory that fully support ILcdDataObject have been introduced to create and initialize AIS domain objects. The existing class ALcdAISObjectFactory and its implementations have been deprecated in favor of TLcdAISDataObjectFactory and ALcdAISGeometryFactory.

ImprovementAviation Standards

TLcdAIXM5AbstractAIXMTimeSlice and TLcdAIXM51AbstractAIXMTimeSlice now implement the ILcdTimeBounded interface.

ImprovementAviation Standards

The TLcdAIXM5ModelDecoder and TLcdAIXM51ModelDecoder now automatically merge features and sort timeslices when decoding a message. This prevents some possible issues related to XLinks, and also properly prepares the message for the most common use cases when working with AIXM 5.x models. This behavior can be manually controlled with the new setAutoSortTimeslices(boolean) and setAutoMergeFeatures(boolean) methods available on the model decoders.

ImprovementAviation Standards

TLcdAIXM5MessageUtil and TLcdAIXM51MessageUtil now only generate new messages and features in the sortMessage and mergeFeatures methods if this is absolutely required.

Upgrade considerationAviation Standards

All AIXM 5.1 methods that represent a value with a unit of measure, such as TLcdAIXM51ValDepth, now have better accessors for the nilReason and the uom attributes. Both of these attributes can no longer be set as a String but require an instance of a specific class. This makes the api more usable.

Existing users of these accessors that use String instances can simply use the constructors that are available on the new types (TLcdGML32NilReasonEnumeration and TLcdAIXM51Uom*) to create an instance that corresponds to the String. The new types also have predefined constants that correspond to well known values.

Upgrade considerationAviation Standards

Getters and setters for the 'nilReason' attribute that occurs on various types have been adapted to be compatible with the classes of the actual values of this attribute. Getters and setters that used to work with a String now use a TLcdGML32NilReasonAnnotation or an Object. In case of an Object, the methods support both instances of URI and TLcdGML32NilReasonAnnotation.

Existing uses of these methods that worked with a String should convert the String to either a URI or a TLcdGML32NilReasonEnumeration when using the setter. For the getter, both of these types can easily be converted to a String if required.

Upgrade considerationAviation Standards

The methods getDataObjectFactory() and setDataObjectFactory(TLcdAISDataObjectFactory) have been added to ILcdDAFIFDecoder. These methods allow the decoder to create domain objects that properly implement ILcdDataObject.

Upgrade considerationAviation Standards

The names of the AIXM 5.1 enumeration model classes representing units of measure have the 'Type' suffix in their names dropped, and they now have a TLcd prefix. For instance, the ELcdAIXM51UomDepthType class has been renamed as such to TLcdAIXM51UomDepth. This is more consistent with their names in AIXM 5.0.

These classes have also been changed from enumerations to regular classes. This results in a better correspondence with the AIXM 5.1 schema, and makes other API that uses these classes more usable. A method is available to retrieve all known values for a given type.

This change will result in compile time errors for code that uses one of classes listed below. These errors can be easily solved by also removing the 'Type' suffix. All uses of the following class names should be replaced with the new names:
  • ELcdAIXM51UomTemperatureType
  • ELcdAIXM51UomDepthType
  • ELcdAIXM51UomDistanceType
  • ELcdAIXM51UomDistanceVerticalType
  • ELcdAIXM51UomDurationType
  • ELcdAIXM51UomFLType
  • ELcdAIXM51UomFrequencyType
  • ELcdAIXM51UomLightIntensityType
  • ELcdAIXM51UomPressureType
  • ELcdAIXM51UomSpeedType
  • ELcdAIXM51UomWeightType

Upgrade considerationAviation Standards

The method TLcdARINCEnrouteCommunicationHandler#getKeyFeatureNames() has been removed. Applications that need this information can always retrieve it using the TLcdAISKeyPropertiesAnnotation on the EnrouteCommunication type in ARINC, TLcdARINCDataTypes#EnrouteCommunication.

Upgrade considerationAviation Standards

The 'name' and 'description' properties of time slices in the AIXM 5.0 and 5.1 domain model now use a prefix that no longer contains 'TimeSlice', to make them more readable and convenient to use. This means that both property constants and getters and setters for these properties now have a slightly different name.

Resulting compilation problems can be fixed easily by removing 'TimeSlice' from the affected methods or property names. For instance, TLcdAIXM51AirportHeliportTimeSlice#getAirportHeliportTimeSliceName() will need to be changed to getAirportHeliportName(). Also the corresponding constant AIRPORT_HELIPORT_TIMESLICE_NAME_PROPERTY will need to be changed to AIRPORT_HELIPORT_NAME_PROPERTY.

This improvement will improve the readability of your code because these method names are now a bit shorter, and it will avoid possible confusion as the previous naming might have suggested that it was the name or description of the time slice instead of the name or description of the actual feature itself.

Upgrade considerationAviation Standards

New time slice classes have been added to the AIXM 5.0 and 5.1 domain model, making it easier to access properties that are common between related time slice types (e.g., a runway marking and a taxiway marking). The new classes correspond to abstract feature types (e.g., a marking) that do not have a corresponding time slice type in the AIXM schemas (e.g., a marking).

This is the list of added classes for AIXM 5.0; corresponding classes for 5.1 are also added:
  • TLcdAIXM5AbstractMarkingTimeSlice
  • TLcdAIXM5AbstractSegmentLegTimeSlice
  • TLcdAIXM5AbstractServiceTimeSlice
  • TLcdAIXM5AbstractTrafficSeparationServiceTimeSlice
  • TLcdAIXM5AbstractAirportGroundServiceTimeSlice
  • TLcdAIXM5AbstractAirportHeliportProtectionAreaTimeSlice
  • TLcdAIXM5AbstractApproachLegTimeSlice
  • TLcdAIXM5AbstractGroundLightSystemTimeSlice
  • TLcdAIXM5AbstractNavaidEquipmentTimeSlice
  • TLcdAIXM5AbstractNavigationSystemCheckpointTimeSlice
  • TLcdAIXM5AbstractProcedureTimeSlice
  • TLcdAIXM5AbstractRadarEquipmentTimeSlice
  • TLcdAIXM5AbstractSurveillanceRadarTimeSlice

These classes are now also used in various getters and setters in the domain model. Existing code that uses these methods might experience compilation problems that can easily be fixed by using the correct type.

Some of these classes also declare a 'name' and/or a 'description' property that used to be declared on the subclasses with a class specific prefix. Due to the introduction of these super classes, the prefix has changed. Resulting compilation problems can be fixed easily by simply changing the used method or constant. For instance, a call to TLcdAIXM51InformationService#getInformationServiceTimeSliceName() will need to be changed to getServiceName(). Also the corresponding constant TLcdAIXM51InformationService#INFORMATION_SERVICE_TIMESLICE_NAME_PROPERTY will need to be changed to SERVICE_NAME_PROPERTY.

Upgrade considerationAviation Standards

Two methods have been added to ILcdAIXMHandler to get and set the handler's data object factory. Handler implementations should use this data object factory to create domain objects. The AIXM model decoder has been changed to use these methods to properly configure its registered handlers.

Upgrade considerationAviation Standards

Two methods have been added to ILcdARINCHandler to get and set the handler's data object factory. Handler implementations should use this data object factory to create domain objects. The ARINC model decoder has been changed to use these methods to properly configure its registered handlers.

Upgrade considerationAviation Standards

All interfaces in the AIS domain model now implement the ILcdDataObject interface. Existing implementations can either choose to fully support this interface by using the new AIS data types, or they can simply fall back to an implementation that returns TLcdUnknownDataTypes.UNKNOWN_TYPE for all data objects.

Upgrade considerationAviation Standards

Accessors on AIXM 5.0 and AIXM 5.1 model classes for properties that map on choices in the AIXM 5.0 and 5.1 XML schema are now uniform with other accessors for association class properties. This means that they hide the association class and directly expose the object the association points to.

The following methods are affected in AIXM 5.0. In AIXM 5.1, the same methods are affected, but note that small (name) differences can occur because of changes in the schema.
  • ALcdAIXM5VerticalStructurePart#getHorizontalProjection()
  • TLcdAIXM5ArrestingGearTimeSlice#getExtent()
  • TLcdAIXM5MarkingElement#getExtent()
  • TLcdAIXM5Obstruction#getObstruction()
  • TLcdAIXM5RadioFrequencyArea#getEquipment()
  • TLcdAIXM5AerialRefuelingPoint#getPointChoice()
  • TLcdAIXM5TerminalSegmentPoint#getPointChoice()
  • TLcdAIXM5EnRouteSegmentPoint#getPointChoice()
  • TLcdAIXM5AngleIndicationTimeSlice#getPointChoice()
  • TLcdAIXM5DistanceIndicationTimeSlice#getPointChoice()
  • TLcdAIXM5SignificantPointInAirspaceTimeSlice#getLocation()
  • TLcdAIXM5ObstacleAreaTimeSlice#getReference()
  • TLcdAIXM5TerminalArrivalAreaTimeSlice#getIF()
  • TLcdAIXM5TerminalArrivalAreaTimeSlice#getIAF()
  • TLcdAIXM5NavigationAreaTimeSlice#getCentrePoint()
  • TLcdAIXM5InstrumentApproachProcedureTimeSlice#getGuidanceFacility()
  • TLcdAIXM5StandardInstrumentDepartureTimeSlice#getGuidanceFacility()
  • TLcdAIXM5StandardInstrumentArrivalTimeSlice#getGuidanceFacility()
  • TLcdAIXM5FinalLegTimeSlice#getFinalPathAlignmentPoint()
  • TLcdAIXM5SafeAltitudeAreaTimeSlice#getCentrePoint()
  • TLcdAIXM5HoldingPatterTimeSlice#getOutboundLegSpan()
  • TLcdAIXM5DirectFlightSegment#getEnd()
  • TLcdAIXM5DirectFlightSegment#getStart()
  • TLcdAIXM5FlightRoutingElement#getPointElement()
  • TLcdAIXM5FlightConditionElement#getSignificantPointCondition()
  • TLcdAIXM5RoutePortion#getStart()
  • TLcdAIXM5RoutePortion#getIntermediatePoint()
  • TLcdAIXM5RoutePortion#getEnd()
  • TLcdAIXM5ChangeOverPointTimeSlice#getLocation()
These methods now return the actual object instead of the XML choice object; their return type is also adjusted to the most specific type (previously ILcdDataObjecT).

10.0

10.0.19

Bug fixAviation Standards

LMAP-4737
The width feature of ILS localizers is now correctly decoded as a double instead of a float. This makes the data consistent with the information in the feature descriptors.

Bug fixAviation Standards

ILcdAIXMAirspaceFeature: The name of the 'Airspace activity' feature that is common to most AIXM airspace types was incorrectly spelled. The name of the feature has been corrected from 'Airspace acitivity' to 'Airspace activity'.

10.0.16

ImprovementAviation Standards

LMAP-4583
The AIXM 5.0 and AIXM 5.1 model decoders now automatically correct arc-by-center-points of which the start/end point do not coincide with the end/start point of the previous/next curve in the composite curve. Note that this correction does not change the original data as stored in the model. See the TLcdGML32ArcByCenterPoint#connect method in the API reference for more information.

Bug fixAviation Standards

Improved error handling for procedure legs that flyby a navaid onto an arc. This removes certain erroneous geometries from the result.

10.0.15

Bug fixAviation Standards

Improved support for procedure legs of type 'RF' in the procedure calculator.

Bug fixAviation Standards

LMAP-4673
Improved support for AIXM 5.0 and 5.1 features that contain no geometry and have a boundedBy property that is explicitly set to 'Null'.

10.0.14

ImprovementAviation Standards

TLcdDAFIFTParachuteJumpAreaDecoder: the decoder no longer fails for parachute jump areas that contain arc segments specified by two bearings and two distances.

ImprovementAviation Standards

The geometry calculation for procedure legs of type 'CR' now better handles erroneous legs, resulting in an improved visualization of those legs.

ImprovementAviation Standards

TLcdDAFIFTNavaidDecoder: improved the decoding of collocated navaids such as VORTAC. As a result of this improvement more navaids will be available in the decoded model.

Bug fixAviation Standards

TLcdDAFIFTProcedureDecoder: improved decoding of the recommended navaid which results in a more accurate visualization for certain procedures.

Bug fixAviation Standards

TLcdDAFIFTProcedureDecoder: improved the decoding to include more procedures in the resulting model.

10.0.13

ImprovementAviation Standards

The AIXM 5.0 and AIXM 5.1 model decoders now use the application schema cache by default. This property can be controlled through the method setUseApplicationSchemaCache(boolean) in TLcdAIXM5ModelDecoder and TLcdAIXM51ModelDecoder. Using the application schema cache improves decoding performance when multiple files are decoded using the same decoder.

ImprovementAviation Standards

The AIXM 5.0 and 5.1 painters now also support surfaces that use an arc-by-center-point in their exterior or interior ring.

Bug fixAviation Standards

Fixed the use of custom functions in the TLcdAIXM5XPathFactory.

Bug fixAviation Standards

LMAP-4223
The TLcdAIXM51Link constructor that takes a data object as parameter no longer throws an exception when invoked with a data object for which a proper link type can be deduced.

Bug fixAviation Standards

Improved the javadoc for a number of property constants defined on the AIXM 5.0 and AIXM 5.1 domain objects.

Bug fixAviation Standards

Fixed an issue in the setters for various AIXM 5.0 and 5.1 domain objects, causing an incorrect domain model. The issue resulted in exceptions when trying to encode the domain model afterwards.

Bug fixAviation Standards

Snapshot generation no longer removes properties with schedules that do not have an associated schedule from the snapshot timeslice.

10.0.08

Bug fixAviation Standards

Fixed an issue with the addElements method of TLcdAIXM5AbstractAIXMMessage and TLcdAIXM51AbstractAIXMMessage. Features that were added with this method could not be found in the XML structure.

Bug fixAviation Standards

LMAP-4435
ALcdAIXM51Code now ensures that the well known codes for all code classes are always properly initialized.

Bug fixAviation Standards

LMAP-4449
TLcdDAFIFTHelipadDecoder: the decoding has been improved for certain types of helipads. This results in more helipads being successfully decoded.

10.0.05

ImprovementAviation Standards

LMAP-4397
It is now possible to set the fill mode on the TLcdICAORunwayPainter. This allows you to paint a runway with a fill even if no surface type is available. You can also disable the fill if desired.

ImprovementAviation Standards

LMAP-4397
It is now possible to set the fill mode of runways on the TLcdARINCLayerConfiguration. This allows you to paint a runway with a fill even if no surface type is available. The fill can also be disabled if desired.

ImprovementAviation Standards

LMAP-3040
TLcdICAONavaidLabelPainter: added class Javadoc to explain how to support custom navaids.

Bug fixAviation Standards

LMAP-4363
TLcdAIXM51GXYPainterEditorProvider: Corrected the xpath expressions that are used to lookup labels. This ensures that labels works again for all AIXM 5.1 types if the referenced property is available in the data.

Bug fixAviation Standards

LMAP-4404
ILcdARINCATSRouteSegmentFeature: Corrected the feature name constants MINIMUM_ALTITUDE_1, MINIMUM_ALTITUDE_UNIT_1, MINIMUM_ALTITUDE_2 and MINIMUM_ALTITUDE_UNIT_2. These names were set to the same string for 1 and 2, this was fixed by appending the index. For example 'Minimum Altitude' has been changed to 'Minimum Altitude 1'.

Bug fixAviation Standards

LMAP-4400
ILcdDAFIFDMEFeature: corrected the feature name constant ILS_DME_BIAS_UNIT. This was set to 'ILS/DME Bias', and has now been changed to 'ILS/DME Bias Unit'. This resolves a name collision with ILS_DME_BIAS.

Bug fixAviation Standards

LMAP-4379
ILcdDAFIFMilitaryTrainingRoutePointFeature: corrected the feature name constant ENROUTE_ALTITUDE_1_UNIT. This was set to 'Cross Altitude Two Unit', and has now been changed to 'Enroute Altitude One Unit'.

Bug fixAviation Standards

LMAP-4405
The featured descriptor for ARINC Aerodrome types now returns the correct class for the 'SPEED_LIMIT_ALTITUDE_VALUE' feature. Previously the descriptor returned Float, this has now been changed into Double.

Bug fixAviation Standards

LMAP-4399
The featured descriptor for DAFIF GlidePath and Marker types now returns the correct class for the 'COMPONENT_TYPE' feature. Previously the descriptor returned String, this has now been changed into Character.

Bug fixAviation Standards

LMAP-4396
TLcdICAORunwayPainter: Changing the selection color now also works for runways without a surface type.

10.0.03

ImprovementAviation Standards

Improved performance for handling AIXM5 and AIXM5.1 extension schemas (reduced creation time for the extension datamodels, reduced configuration time for the decoder and reduced static initialization time of the AIXM data model).

ImprovementAviation Standards

LMAP-4164
Added logging to snapshot generation to inform users that a BASELINE timeslice does not contain a start time which probably indicates bad data. All timeslices without start times are ignored during snapshot generation.

ImprovementAviation Standards

TLcdAIXM51AbstractPropertiesWithSchedule: Javadoc was added to this class.

ImprovementAviation Standards

LMAP-4190
The decoder now also supports decoding features that do not contain timeslices. This only affects data that is incomplete.

ImprovementAviation Standards

LMAP-4191
Improved the robustness when calculating aggregated airspaces that have no sequence numbers. This only affects data that is incomplete.

Bug fixAviation Standards

LMAP-4176
TLcdICAORunwayPainter: fixed painting artifacts that occurred when panning runways that are painted with a pattern.

Bug fixAviation Standards

TLcdAIXM51AbstractPropertiesWithSchedule: Improved support for custom extensions of this class.

Bug fixAviation Standards

LMAP-3807
The DAFIF data preparator sample now uses a TLcdLonLatBounds instead of a TLcdXYBounds to avoid invalid bounding box coordinate values.

Bug fixAviation Standards

LMAP-4054
TLcdDAFIFVFRRouteDecoder: the optional aerodrome submodel is now split up in one 'airport' model and one 'heliport' model. This fixes an inconsistency between the model descriptor and the actual data in the model that could cause issues.

10.0

ImprovementAviation Standards

The existing package com.luciad.format.aixm5.model now provides an API for the complete domain model of AIXM 5.0. Classes are available to work directly with messages, features and timeslices, for all aeronautical types defined in AIXM 5.0. The package is subdivided into different subpackages that each represent a subset of the AIXM 5.0 format, corresponding to the AIXM 5.0 UML and XML Schema model.

ImprovementAviation Standards

An AIXM 5 and 5.1 model decoder can now be created for a custom data model that extends from the AIXM data model. This decoder is then automatically configured for that data model.

ImprovementAviation Standards

The AIXM 5 and 5.1 model encoder/decoder now have a model reference formatter/parser that can be used to format/parse custom model references into/from srs names.

ImprovementAviation Standards

The new package com.luciad.format.aixm51 introduces support for the aeronautical data format AIXM 5.1. The package provides support for decoding and encoding AIXM 5.1 data, as well as painters and other tools to visualize and use AIXM 5.1 data in an application. The API of the new AIXM 5.1 package is similar to the existing AIXM 5.0 API. Please refer to the developer guide for an introduction to this package.

ImprovementAviation Standards

LMAP-3089
The AIXM5 model decoder now supports decoding of ISO 19115 Metadata which can be included in messages, features and timeslices.

ImprovementAviation Standards

The AIXM5 model decoder now provides a mechanism to support application-specific resolution of Xlinks.

Upgrade considerationAviation Standards

All painters in the com.luciad.format.aixm5.view.gxy.painter package have been moved to the com.luciad.format.aixm5.view.gxy package. The TLcdAIXM5MessageUtil class has been moved from the com.luciad.format.aixm5.model to the com.luciad.format.aixm5.util package, all its methods have been made static and the class itself is no longer instantiatable. The classes TLcdAIXM5DecoderLibrary, TLcdAIXM5EncoderLibrary and TLcdAIXM5MappingLibrary from the com.luciad.format.aixm5.xml package have been removed, as they are no longer needed with the new implementation.

Upgrade considerationAviation Standards

The AIXM 5 domain model defined in the com.luciad.format.aixm5.model package has been upgraded and now provides an API for the complete domain model of AIXM 5.0. As a result, the existing model classes (TLcdAIXM5AbstractAIXMFeature, TLcdAIXM5AbstractAIXMMessage and TLcdAIXM5AbstractAIXMTimeSlice) changed incompatibly.
  • The domain classes now implement ILcdDataObject; ILcdFeatured is no longer implemented.
  • The domain classes are now much less dependent on XML. XML element names for instance no longer have to be filled in. As a result, the TLcdAIXM5Constants class is no longer need and has been removed from the API.
  • The model descriptor is no longer an ILcdFeaturedDescriptorProvider.
Please refer to the developer guide for more information about the AIXM 5 domain model classes.

9.1

9.1.17

ImprovementAviation Standards

LMAP-4017
It is now possible to specify the preferred departure position for procedures decoded from an ARINC file. A new method 'setPreferredDeparturePosition' has been added to the TLcdARINCProcedureHandler class that takes one of the constants RUNWAY_START or RUNWAY_END as an argument. The default setting is RUNWAY_END which is compatible with the older behaviour.

9.1.14

Bug fixAviation Standards

LMAP-3943
TLcdDAFIFRegionChooser: fixed a NullPointerException when no ILcdStringTranslator was set.

9.1.08

ImprovementAviation Standards

Improved logging of errors which occur during the geometry calculation of association based airspaces. These errors indicate that the geometry of an association based airspace is invalid, or that some information is missing. Increase the logging level to get more information in case such an error occurs.

ImprovementAviation Standards

LMAP-3655
The DAFIF decoders will now show a warning instead of a "severe" error in case a model has no bounds. The error message will now also refer to the specific DAFIF file which resulted in the empty model.

9.1.07

ImprovementAviation Standards

TLcdProcedure3DGeometryCalculator: Improved the initial altitude setting for SID procedures. This results in a better discretization of certain leg types.

ImprovementAviation Standards

LMAP-3806
TLcdDAFIFLoader: added a constructor with an ILcdStringTranslator to allow for translation of the label on the 'Update' button and the 'Types' list. TLcdDAFIFRegionChooser: added a constructor with an ILcdStringTranslator to allow for translation of the label on the 'ICAO Regions' list.

9.1.04

ImprovementAviation Standards

LMAP-3794
TLcdAIXM5XPathExpressionFactory: added the possibility to register additional schemas and prefixes with the XPath expression factory.

Bug fixAviation Standards

LMAP-3790
TLcdICAORunwayPainter: Fixed an issue which caused runways to be drawn with a doubled width.

9.1.03

ImprovementAviation Standards

LMAP-3774
The AIXM5 model decoder now has public accessors to get and set its entity resolver. This allows the application to determine how references to external schemas are resolved.

9.1.01

ImprovementAviation Standards

LMAP-3671
The AIXM5 sample now automatically adds the ".xml" extension to the file name if it is not present. This ensures that saved files can always be found in the open file dialog which filters on this extension.

Bug fixAviation Standards

Fixed a possible NullPointerException when painting airspace labels.

9.1

Bug fixAviation Standards

LMAP-3466
TLcdDAFIFAerodromeModelDescriptor, TLcdDAFIFHeliportModelDescriptor: these classes now correctly implement the getFeatureElementClass method from ILcdCollectionFeaturedDescriptor. This means they will return null in case the feature index does not correspond to a feature which is a collection.

Bug fixAviation Standards

LMAP-3466
TLcdARINCControlledAirspaceModelDescriptor, TLcdARINCRestrictiveAirspaceModelDescriptor: these classes now correctly implement the getFeatureElementClass method from ILcdCollectionFeaturedDescriptor. This means they will return null in case the feature index does not correspond to a feature which is a collection.

Upgrade considerationAviation Standards

The following QName constants are no longer available in TLcdAIXM5Constants.AIXM5.Name: codeSpace_unqual, id_unqual, uuid_unqual and uuidref_unqual. These are names of attributes that are not included in the AIXM 5 namespace. The original inclusion was erroneous and could cause confusion. Uses of these QName constants should be replaced with local constants representing these names. They can simply be created for instance like 'new QName("codeSpace")'.

Upgrade considerationAviation Standards

The lcd_aixm_schema_resources.jar has been renamed to lcd_aixm_resources.jar. Applications that depend on this jar should update their classpath accordingly. In addition, the schemas inside that jar are now in a 5.0 folder (to prepare for the upcoming 5.1 version). Applications that rely on the location of these schemas in the classpath to get hold of the schema should update the path to these schemas (for instance replace someClass.getResource( "AIXM_features.xsd" ) by someClass.getResource( "5.0/AIXM_features.xsd" ) ).

9.0

9.0.20

ImprovementAviation Standards

LUCY-2164
TLcdARINCDecoder: the canDecodeSource method has been improved to reduce the number of files that are falsily recognized as containing ARINC data.

ImprovementAviation Standards

LMAP-3105
The performance of the ARINC decoder has been improved by up to 30%.

9.0.19

Bug fixAviation Standards

LMAP-3494
The feature class for ILcdAIXMProcedureFeature.ROUTE_TYPE is now correctly set to TLcdProcedureRouteType in TLcdAIXMProcedureTrajectoryModelDescriptor.

Bug fixAviation Standards

LMAP-3481
The ARINC decoder now correctly sets the recommended navaid on FD procedure legs; this results in a more correct visualization of procedures which contain FD legs.

Bug fixAviation Standards

LMAP-3483
The ARINC decoder now successfully decodes more procedures due to an improved validity check.

Bug fixAviation Standards

LMAP-3482
The geometry calculation for FD type procedure legs has been made more robust, which results in improved visualization for some procedures containing an FD leg.

9.0.17

ImprovementAviation Standards

LMAP-3467
TLcdProcedureTrajectory now has a valid implementation for getFocusPoint(), by returning the middle of the trajectory bounds instead of null.

9.0.16

ImprovementAviation Standards

TLcdDAFIFLoader now has two new methods String[] getSelectedSubTypes( String aType ) and void setSelectedSubTypes( String aType, String[] aSubTypes ). This allows users to retrieve and set the state of the DAFIF sub types correctly.

Bug fixAviation Standards

The result of the getSelectedTypes method no longer contains an entry with the name of the parent type for each selected sub type.

9.0.15

ImprovementAviation Standards

LMAP-3396
The decoder logs returned by TLcdAIXMModelDecoder#getErrorMessage() after decoding a file have been improved. They now include more information about the affected aeronautical entities in the data.

Bug fixAviation Standards

LMAP-3403
The procedure calculator will no longer exceed the minimum or maximum altitudes of a leg when trying to reach the minimum or maximum altitude of the next leg. This means that when a leg is followed by a leg with a minimum altitude higher then the current maximum altitude, the trajectory will climb until the current maximum altitude is reached. The remainder of the climb will be done during the next leg. A robustness fix was also applied to prevent an exception when calculating procedure geometry.

Bug fixAviation Standards

LMAP-3397
The distance unit FT was not decoded correctly when used for a runway length or width.

9.0.13

ImprovementAviation Standards

LMAP-3375
The decoder for routes and route segments, com.luciad.format.aixm.decoder.TLcdAIXMRouteHandler, now removes route segments with unresolved referred points from decoded routes. Any unresolved referred points are still logged by the decoder, as described in enhancement LMAP-3148.

9.0.12

Bug fixAviation Standards

LMAP-3353
TLcdDAFIFTRefuelingTrackDecoder: added support for the assigned ATC and scheduling unit fields in the ARF/ARF_PAR.TXT file. This fixes a crash when loading newer DAFIFT data which contains these fields.

9.0.10

ImprovementAviation Standards

LMAP-2206
The class which calculates the height of a procedure leg, com.luciad.ais.model.procedure.TLcdProcedure3DGeometryCalculator, now uses a more efficient approximation in beginAngleArc to calculate the start and end height of the arc. This results in a performance improvement in case the radius of the arc is not very large.

ImprovementAviation Standards

LMAP-2206
Due to a change in the geometry calculation of procedures, the performance of decoding files containing procedures has increased with up to 50%.

Bug fixAviation Standards

LMAP-3326
TLcdProcedureGeometryCalculator's handling of CF (Course to Fix) legs has been improved. A new algorithm was introduced which is capable of finding routes where the previous algorithm failed, it also solves issues that were hard to fix with the previous algorithm.

Bug fixAviation Standards

The class com.luciad.format.aixm.decoder.TLcdAIXMProcedureHandler now sets the recommended navaid on the procedure legs if it is available.

Bug fixAviation Standards

The list of ICAO regions now includes YZ and KZ.

9.0.06

Bug fixAviation Standards

LMAP-3091
The geometry of association based airspaces containing arcs has been improved. A union of two geometries could contain holes where arcs overlapped.

9.0.05

ImprovementAviation Standards

LMAP-3234
TLcdICAORunwayPainter now also supports runway model with a grid reference.

Bug fixAviation Standards

LMAP-3284
TLcdDAFIFProcedureDecoder: NullPointerException when decoding procedures while a decoding bounds is set.

Bug fixAviation Standards

LMAP-3227
ALcdDAFIFAerodromeDecoder: handling incorrect DAFIF data could throw a NumberFormatException.

9.0.02

Bug fixAviation Standards

LMAP-3137
TLcdProcedureGeometryCalculator's handling of CI (Course to Intercept) - AF (Arc to Fix) leg transitions has been improved.

9.0.01

Bug fixAviation Standards

TLcdDAFIFSpecialUseAirspaceDecoder did not disable subtype filtering by default, which was inconsistent with the other implementations of ILcdDAFIFSubTypeFilteringDecoder.

9.0

ImprovementAviation Standards

LMAP-3148
The decoder for routes and route segments, com.luciad.format.aixm.decoder.TLcdAIXMRouteHandler, now logs missing referred points within a route segment.

ImprovementAviation Standards

TLcdDAFIFLoader has been extended with the ability to filter airspaces and special use airspaces based on their subtype (e.g. CTA, CTR, ...). The interface ILcdDAFIFSubTypeFilteringDecoder defines this functionality at the decoder level, whereas TLcdDAFIFLoader itself has a constructor with a boolean parameter to switch this feature on or off.

ImprovementAviation Standards

The new package com.luciad.format.aixm5 introduces support for the aeronautical data format AIXM 5.0. The package provides support for decoding and encoding AIXM 5.0 data, as well as painters and other tools to visualize and use AIXM 5.0 data in an application. Please refer to the developer guide for an introduction to this package.

Upgrade considerationAviation Standards

LMAP-2133
The classes TLcdVectorIcon and TLcdVectorIconDecoder in the com.luciad.ais.gui package have been removed, as these classes are not intended to be used directly by the user. Furthermore, these classes are also available in the com.luciad.gui package in LuciadMap. If there would be any dependencies on the classes in AIS, the classes in LuciadMap can be used instead.

8.2

8.2.22

Bug fixAviation Standards

LMAP-3099
Some DAFIFT decoders (e.g. TLcdDAFIFTAirspaceDecoder) did not use the decoding bounds filter correctly.

Bug fixAviation Standards

LMAP-2999
TLcdProcedureGeometryCalculator's handling of CF (Course to Fix) legs has been improved.

Bug fixAviation Standards

LMAP-3090
Shapes including the poles were rendered incorrectly when using a geodetic pen. This has been fixed.

8.2.19

Bug fixAviation Standards

LMAP-3074
Enhancement LMAP-3052 introduced an issue in the clone behavior of TLcdDiscretizedLonLatGeoPath, which could lead to a NullPointerException when using a clone.

8.2.17

ImprovementAviation Standards

LMAP-3052
The implementation of TLcdDiscretizedLonLatGeoPath has been made more memory-efficient, resulting in significant savings for airspace data (typically around 30%).

8.2.15

ImprovementAviation Standards

LMAP-2982
The list of supported geodetic datum codes from the ARINC-424 specification has been increased significantly. The full list of supported codes can be found in the ARINC Developer's Guide.

8.2.12

ImprovementAviation Standards

LMAP-3022
The ARINC handlers have been enhanced to reduce memory when loading large ARINC datasets.

8.2.08

Bug fixAviation Standards

LMAP-3002
TLcdARINCEnrouteAirwayHandler: the handler used to create duplicate and incorrect route segments.

8.2.07

Bug fixAviation Standards

LMAP-2991
TLcdARINCEnrouteAirwayHandler did not correctly decode enroute airways with multiple segments.

Bug fixAviation Standards

TLcdARINCControlledAirspaceHandler did not always correctly determined the airspace classification.

Bug fixAviation Standards

LMAP-2986
TLcdARINCControlledAirspaceHandler did not always correctly calculated the unique identifier for decoded airspaces, causing a misinterpretation in some cases. To fix this, the airspace classification ILcdARINCAirspaceFeature.CLASS is now taken into account for the unique identifier.

8.2.06

Bug fixAviation Standards

TLcdProcedure3DGeometryCalculator would in some cases try to descend to altitude 0 during the last leg of a procedure, without taking into account the minimum and maximum altitudes set in the procedure leg. This has now been corrected.

8.2.05

ImprovementAviation Standards

The procedure legs of SID/STAR/IAP procedures decoded by TLcdARINCProcedureHandler now contain the transition identifier (see ILcdProcedureLeg#getTransitionIdentifier).

ImprovementAviation Standards

The designator of SID/STAR/IAP procedures decoded by TLcdARINCProcedureHandler is now also available through ILcdProcedure#getDesignator instead of only via ILcdFeatured implementations of ILcdProcedure.

8.2.04

Bug fixAviation Standards

TLcdARINCFIRUIRHandler now supports FIR/UIR airspaces that have the same identifier, address and type, but two or more geographical areas. These are now decoded as separate airspace objects, one for each geographical area. In the past, they were represented as one airspace object with an incorrect geometric boundary.

To distinguish airspaces with multiple geographical areas, a new identifier ILcdARINCAirspaceFeature.PART_IDENTIFIER has been added to the unique list of features maintained by TLcdARINCFIRUIRHandler.

8.2.01

ImprovementAviation Standards

The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath has been made more robust to correctly handle airspace segments of type ARC that are very small.

Bug fixAviation Standards

LMAP-2897
An issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath that sometimes resulted in an incorrect discretized geometry for airspace segments of type ARC_BY_EDGE.

8.2

Bug fixAviation Standards

A custom ALcdAISObjectFactory configured on the ARINC handler for Procedure records through TLcdARINCProcedureHandler#setDomainFactory was not used for all decoded procedures.

8.1

8.1.09

ImprovementAviation Standards

LMAP-2814
The procedure trajectory class com.luciad.ais.model.procedure.TLcdProcedureTrajectory now uses a more efficient way to store the calculated geometry of a procedure. This results in a reduction of the memory needed to load a procedure. Furthermore, the geometrical representation is now stored using java.lang.ref.SoftReference objects, allowing the geometry to be garbage-collected when memory is running low. This avoids throwing OutOfMemoryErrors at runtime when loading large procedure datasets.

Bug fixAviation Standards

LMAP-2817
The ARINC handler for Enroute Airway records, TLcdARINCEnrouteAirwayHandler, now initializes the model descriptor TLcdARINCEnrouteAirwayModelDescriptor with the descriptors for the navaids DME, VOR, NDB and TACAN. Before, this was only done for the waypoint and route segment descriptors.

8.1.07

Upgrade considerationAviation Standards

LMAP-2782
The list of features to uniquely define an object (see ILcdARINCHandler#getKeyFeatureNames) has been updated for the following set of ARINC handlers:
  • TLcdARINCWayPointHandler: ILcdARINCWayPointFeature.IDENTIFIER, ILcdARINCWayPointFeature.ICAO_REGION, ILcdARINCWayPointFeature.REGION_CODE
  • TLcdARINCAerodromeHandler: ILcdARINCAerodromeFeature.IDENTIFICATION, ILcdARINCAerodromeFeature.ICAO_REGION
  • TLcdARINCDMEHandler: ILcdARINCDMEFeature.IDENTIFIER, ILcdARINCDMEFeature.ICAO_REGION, ILcdARINCDMEFeature.NAVAID_CLASS
  • TLcdARINCVORHandler: ILcdARINCVORFeature.IDENTIFIER, ILcdARINCVORFeature.ICAO_REGION, ILcdARINCVORFeature.NAVAID_CLASS
  • TLcdARINCTACANHandler: ILcdARINCTACANFeature.IDENTIFIER, ILcdARINCTACANFeature.ICAO_REGION, ILcdARINCTACANFeature.NAVAID_CLASS
  • TLcdARINCNDBHandler: ILcdARINCNDBFeature.IDENTIFIER, ILcdARINCNDBFeature.ICAO_REGION, ILcdARINCNDBFeature.NAVAID_CLASS
  • TLcdARINCMarkerHandler: ILcdARINCMarkerFeature.AIRPORT_ID, ILcdARINCMarkerFeature.RUNWAY_ID, ILcdARINCMarkerFeature.IDENTIFIER, ILcdARINCMarkerFeature.MARKER_TYPE
The previous list of features in these handlers did not uniquely define the decoded objects. Because duplicates are ignored, this resulted in too few objects in the decoded models. The handlers TLcdARINCEnrouteAirwayHandler, TLcdARINCHoldingHandler and TLcdARINCProcedureHandler have been updated accordingly, to take into account the new list of features when retrieving an object from one of the decoded models (e.g., a procedure that refers to a waypoint). This results in an improved and more accurate representation of the decoded objects, when previously some referred objects could not be found.

If there is an explicit dependency on the previous list of features, this might require some implementation changes. For example, if the previous list of features was used as a unique index on the decoded models, it should now be used as a normal index that can return multiple objects instead of only one.

8.1.06

Bug fixAviation Standards

LMAP-2773
The class TLcdAIXMDefaultLayerFactory now correctly initializes new layers for empty models.

8.1.04

ImprovementAviation Standards

LMAP-2694
The com.luciad.format.arinc.decoder.TLcdARINCRestrictiveAirspaceHandler now decodes extra features that provide time information. The following features have been added and are decoded by default:
  • Time Code, represented by ILcdARINCAirspaceFeature.TIME_CODE
  • NOTAM, represented by ILcdARINCAirspaceFeature.NOTAM
  • Time Of Operations, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS
  • Time Of Operations - Time Code, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS_CODE
  • Time Of Operations - Time Indicator, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS_INDICATOR
  • Time Of Operations - NOTAM, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS_NOTAM

8.1

Upgrade considerationAviation Standards

The domain object ILcdAirspaceCorridor now extends from the general buffer interface com.luciad.shape.ILcdGeoBuffer, available in LuciadMap. As a result, existing implementations of this interface must now provide an implementation for the methods ILcdGeoBuffer#getBaseShape(), ILcdGeoBuffer#getEndCapStyle() and ILcdGeoBuffer#getJoinStyle().

8.0

8.0.11

ImprovementAviation Standards

LMAP-2654
The ARINC handlers for Restrictive and Controlled Airspace records, TLcdARINCRestrictiveAirspaceHandler and TLcdARINCControlledAirspaceHandler, have been made more robust, as they no longer fail for unrecognized airspace types, levels or classifications. In these cases, a debug message is now added to the error message report of the decoder (see TLcdARINCDecoder#getErrorMessage()).

Bug fixAviation Standards

TLcdDAFIFATSRouteDecoder and TLcdDAFIFTATSRouteDecoder: The decoders will only decode routes containing segments. Empty routes are not added to the model.

8.0.01

ImprovementAviation Standards

The AIXM decoder now decodes the attribute 'mid' for the existing domain objects. This attribute represents an artificial unique identifier, and is considered optional by the AIXM 3.3 and 4.x specification. The following domain objects have been updated:
  • Aerodrome: ILcdAIXMAerodromeFeature.MID
  • Navaid (DME, VOR, NDB, TACAN, Marker): ILcdAIXMNavaidFeature.MID
  • Designated point: ILcdAIXMWayPointFeature.MID
  • Airspace: ILcdAIXMAirspaceFeature.MID
  • Route: ILcdAIXMATSRouteFeature.MID
  • Route segment: ILcdAIXMRouteSegmentFeature.MID
  • Geoborder: ILcdAIXMGeoborderFeature.MID
  • Runway: ILcdAIXMRunwayFeature.MID
  • Runway direction: ILcdAIXMRunwayDirectionFeature.MID
  • Runway cline point: ILcdAIXMRunwayClinePointFeature.MID
  • ILS: ILcdAIXMILSFeature.MID
  • Procedure: ILcdAIXMProcedureFeature.MID
The corresponding ILcdAIXMHandler implementations now decode this extra attribute by default.

8.0

ImprovementAviation Standards

A new domain object is added to AIS to represent airspace corridors. The basic interface is com.luciad.ais.model.airspace.ILcdAirspaceCorridor. Just like the existing airspace types, it extends from the generic airspace interface, ILcdGenericAirspace. The interface ILcdAirspaceCorridor has a default implementation com.luciad.ais.model.airspace.TLcdAirspaceCorridor and a featured extension com.luciad.ais.model.airspace.TLcdFeaturedAirspaceCorridor. For a list of features and the corresponding class mappings, the existing airspace feature interfaces and class mappers are used: com.luciad.ais.model.airspace.ILcdAirspaceFeature and com.luciad.ais.model.airspace.TLcdAirspaceFeatureClassMapper. The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create TLcdFeaturedAirspaceCorridor instances.

ImprovementAviation Standards

The AIXM decoder now supports version 4.0 and 4.5 of the AIXM format, next to the originally supported version 3.3. To comply with the new versions, the decoders, feature lists and feature value domains for existing domain objects have been updated accordingly.

To represent the new airspace corridor concept introduced in version 4.0, the AIS package is extended with a new domain object, represented by the interface com.luciad.ais.model.airspace.ILcdAirspaceCorridor. The AIXM airspace decoder, TLcdAIXMAirspaceHandler, now automatically decodes airspace corridors using this new domain object.

Apart from airspace corridors, no new domain objects or equivalent decoders have been introduced.

Bug fixAviation Standards

TLcdARINCRunwayHandler incorrectly set the widths of runway objects to the value in feet, rather than converting it to meters as required by the specification of ILcdRunway.getWidth(). As a result, the runway painter would paint runways wider than they should be. This has now been corrected. Note that the width in feet, as read from the ARINC file, is still available in the features of the runway object (ILcdARINCRunwayFeature.WIDTH and ILcdARINCRunwayFeature.WIDTH_UNIT).

Bug fixAviation Standards

All painters now have clone methods that create proper, deeper clones.

Upgrade considerationAviation Standards

The JTS library, used by AIS, has been upgraded from version 1.5 to 1.8. Because the name of the library has been changed from jts-1.5.jar to jts-1.8.jar, a classpath update is required if a classpath for a previous version of LuciadMap is used.

7.2

7.2.18

Bug fixAviation Standards

The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath now correctly discretizes geopath legs of type RHUMB_LINE. In the past, this was only correct when the leg corresponded to a meridian or parallel; in all other cases, the leg was interpreted as a geodesic line.

Bug fixAviation Standards

The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath could not correctly handle geopath legs of type ARC_BY_EDGE when the distance between center and edge exceeded a distance of about 300NM. In that case, the resulting arc did not pass correctly through the given point on the edge. The discretization process has been improved, and it is now possible to use ARC_BY_EDGE legs with center - edge distances of an arbitrary length within earth's dimensions.

Bug fixAviation Standards

TLcdDAFIFMilitaryTrainingRouteDecoder: decoding the CROSS_ALTITUDE_x_MEASURE and ENROUTE_ALTITUDE_x_MEASURE features no longer causes a NumberFormatException.

7.2.04

Upgrade considerationAviation Standards

The airspace domain objects and related objects now have clone methods that create proper, deeper clones. The clone methods of the following classes have been modified:
  • TLcdAirspace: the clone implementation now clones the airspace segments and no longer copies the discretization,
  • ILcdAirspaceAssociation: made clone method public,
  • TLcdAirspaceAssociation: added clone implementation that shares the airspace,
  • TLcdAssociationBasedAirspace: the clone implementation now also clones the associations,
  • ALcdDiscretizedGeoPath: added clone implementation that uses super.clone(),
  • TLcdDiscretizedLonLatGeoPath: the clone implementation now uses super.clone() and no longer copies the discretization,
  • TLcdGeoPath: added protected clone implementation that clones the GeoPath legs,
  • TLcdGeoPathLeg: added clone implementation that clones the parameter list.
Please refer to the reference documentation for more detailed information about the actual implementation.

7.2.02

ImprovementAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCDecoder has been made more robust: it does now allow that ARINC datasets have one or more empty lines at then end. Previously, it rejected all datasets that did not use 132 characters for each record line.

Bug fixAviation Standards

TLcdDAFIFAerodromeNavaidDecoder: decoding aerodrome navaid objects from a small DAFIF dataset no longer causes a NullPointerException.

7.2

ImprovementAviation Standards

Support for the DAFIF Edition 8 specification was added to the DAFIF package. The model decoders that can decode DAFIF Edition 8 data can be found in the package com.luciad.format.dafift.decoder.

ImprovementAviation Standards

The ARINC handlers did not always decode all information available in version 15 of the ARINC 424 format. They are now extended with new features to make the missing information available.

ImprovementAviation Standards

The com.luciad.format.arinc.decoder.TLcdARINCEnrouteAirwayHandler now decodes all characters of the com.luciad.format.arinc.model.route.ILcdATSRouteSegmentFeature.CRUISE_LEVEL feature, where previously it only decoded the first.

ImprovementAviation Standards

The com.luciad.format.arinc.decoder.TLcdARINCNDBHandler now also supports Terminal airport and heliport NDB navaid records ('PN'). A new feature com.luciad.format.arinc.model.navaid.ILcdARINCNDBFeature.AERODROME_ID is added that contains the airport/heliport identification code for terminal airport/heliport NDB navaids.

ImprovementAviation Standards

The com.luciad.format.arinc.model.airspace.ILcdARINCAirspaceFeature is extended with the features FIR_UIR_COMBINED_FIR_UPPER_LIMIT, FIR_UIR_COMBINED_FIR_UPPER_LIMIT_UNIT and FIR_UIR_COMBINED_FIR_UPPER_LIMIT_REFERENCE that are only filled in by the com.luciad.format.arinc.decoder.TLcdARINCFIRUIRHandler : in case an airspace is a combined FIR/UIR airspace these features contain the upper limit characteristics of the FIR, while the existing UPPER_LIMIT features contain the upper limit characteristics of the UIR.

ImprovementAviation Standards

The com.luciad.format.arinc.decoder.TLcdARINCWaypointHandler now also supports Terminal airport ('PC') and heliport ('HC') waypoint records. A new feature com.luciad.format.arinc.model.navaid.ILcdARINCWayPointFeature.REGION_CODE is added that contains the airport/heliport identification code for terminal airport/heliport waypoints, and 'ENRT' for enroute waypoints.

ImprovementAviation Standards

The ARINC decoder now supports version 15, 17 and 18 of the ARINC 424 format, while previously it only supported version 15.

ImprovementAviation Standards

The airspace painter com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter has been optimized to improve the drawing performance up to 50%.

Upgrade considerationAviation Standards

To support editable labels for airspaces and navaids, the labelpainters TLcdICAOAirspaceDetailedLabelPainter and TLcdICAONavaidLabelPainter (which is extended by TLcdICAODMELabelPainter, TLcdICAONDBLabelPainter, TLcdICAOTACANLabelPainter and TLcdICAOVORLabelPainter) do now extend from TLcdGXYStampLabelPainter instead of TLcdGXYLabelPainter. Because TLcdGXYLabelPainter is a subclass of TLcdGXYStampLabelPainter, a number of methods are not available anymore:
  • public getLabelTextAlignmentMode(), setLabelTextAlignmentMode(int): was not used, because text aligment is automatically chosen to comply with the ICAO guidelines.
  • public isConsiderPinForBounds(), setConsiderPinForbounds(boolean): was not used.
  • public isFrame(), setFrame(boolean): was not used, because framed labels are automatically used to comply with the ICAO guidelines.
  • public paintLabel(int aLocationIndex, java.awt.Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext): replaced by paintLabel(java.awt.Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext), because the location is automatically determined by TLcdGXYStampLabelPainter
  • protected paintPin(java.awt.Graphics aGraphics, int aMode, int aStartPointX, int aStartPointY, int aEndPointX, int aEndPointY): painting the pin is handled automatically by TLcdGXYStampLabelPainter
  • protected calculateMaxLabelWidth(java.lang.String[] aLabelArray, java.awt.Graphics aGraphics): only removed in TLcdGXYNavaidLabelPainter, but still available in TLcdICAOAirspaceDetailedLabelPainter as it was a public method in that class.
  • protected getUpperLeftPointSFCT(java.awt.Point aAnchorPoint, java.lang.String[] aLabelArray, int aMaxLabelWidth, int aSingleLabelHeight, java.awt.Point aLocationPointSFCT): the position of the upper left point is now automatically determined by TLcdGXYStampLabelPainter.
  • protected getPinPointSFCT(java.awt.Point aAnchorPoint, java.lang.String[] aLabelArray, int aSingleLabelHeight, java.awt.Point aPinLocation): the position of the pin point is now automatically determined by TLcdGXYStampLabelPainter.
These changes may be incompatible if any code made use of one of the methods listed above or if it explicitly relied on the fact that these labelpainters were of the type TLcdGXYLabelPainter (e.g., in an instanceof test).

Upgrade considerationAviation Standards

The com.luciad.format.arinc.decoder.TLcdARINCRestrictiveAirspaceHandler now uses the com.luciad.format.arinc.model.airspace.ILcdARINCAirspaceFeature features ICAO_REGION, TYPE, RESTRICTIVE_AIRSPACE_DESIGNATOR and MULTIPLE_CODE to uniquely identify a restrictive airspace, where previously it only used the RESTRICTIVE_AIRSPACE_DESIGNATOR : only using the RESTRICTIVE_AIRSPACE_DESIGNATOR could lead to incorrect airspaces, i.e. too few airspaces with too many segments.

7.1

7.1.18

ImprovementAviation Standards

The DAFIF decoders now also allow to supply a single source file to decode, instead of a DAFIF root directory path or a table of contents (.toc) file. Note however that a filename should correspond to the associated filename of a decoder, which can be retrieved through ILcdDAFIFDecoder.getDecodeFileName().

7.1.10

Bug fixAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCFIRUIRHandler did not correctly decode data records in the ARINC version 15 format or later.

Bug fixAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCFIRUIRHandler did not decode the lower limit reference.

7.1.07

Bug fixAviation Standards

The classes com.luciad.format.arinc.decoder.TLcdARINCDMEHandler, TLcdARINCVORHandler and TLcdARINCTACANHandler did not correctly decode an 'Out of service' figure of merit.

Bug fixAviation Standards

The classes com.luciad.format.arinc.decoder.TLcdARINCAirportCommunicationHandler, com.luciad.format.arinc.decoder.TLcdARINCHeliportCommunicationHandler and com.luciad.format.arinc.decoder.TLcdARINCEnrouteCommunicationHandler produced domain objects with altitude values in feet which is now corrected to meters.

Bug fixAviation Standards

The classes com.luciad.format.arinc.decoder.TLcdARINCAerodromeHandler and com.luciad.format.arinc.decoder.TLcdARINCHeliportHandler did not correctly decode the speed limit altitude in case the record specified F instead of FL to indicate Flight Level as altitude unit.

Bug fixAviation Standards

The classes com.luciad.format.arinc.decoder.TLcdARINCAerodromeHandler and and com.luciad.format.arinc.decoder.TLcdARINCHeliportHandler produced aerodromes with altitude values in feet. This is now corrected to meters.

7.1.05

Bug fixAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCMarkerHandler did not correctly decode the marker type, as it only recognized the value 'Locator at marker'.

Bug fixAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCHoldingHandler did not correctly set the altitude description of the holding leg (see ILcdProcedureLeg.getAltitudeDescription) when the lower or upper altitude was not defined. It did also not correctly decode the course value of the leg if it was encoded with a T as last character.

7.1.03

ImprovementAviation Standards

A new method getVectorIcon(Object) has been introduced in the class com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider, to allow the user to create extensions that add new vector icons. These icons are automatically cached in an image, if the isPaintVectorIcons() property returns false.

7.1.02

Bug fixAviation Standards

TLcdAIXMModelDecoder could not correctly work with ILcdAIXMHandler implementations that were extensions of the predefined ILcdAIXMHandler implementations in the package com.luciad.format.aixm.decoder.

Bug fixAviation Standards

Updates to a domain object that were decoded after a key change of the domain object in an update file were ignored by the predefined ILcdAIXMHandler implementations in the package com.luciad.format.aixm.decoder.

7.1.01

Bug fixAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCControlledAirspaceHandler now uses Float instances for the features ILcdARINCAirspaceFeature.RNP (Required Navigation Performance) instead of String instances, which was not correct according to the documentation of these features.

7.1

Bug fixAviation Standards

TLcdProcedureGeometryCalculator now respects the turn direction specified in procedure legs wherever possible. In previous versions, the turn direction would in some cases be ignored in favour of the shortest turn (i.e. the turn requiring the smallest course change).

7.0

7.0.15

Bug fixAviation Standards

The geometry calculator for procedures, TLcdProcedureGeometryCalculator, could not handle CD or VD legs with a navaid distance larger than 100 km. This limit has been removed, allowing arbitrary long distances.

7.0.01

Bug fixAviation Standards

The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath used TLcdXYPoint objects instead of TLcdLonLatPoint objects to represent the discretized points of an airspace. This caused problems with airspaces that crossed the 180th meridian, more specifically in bounds calculations, model2world and world2view transformations; the coordinates of the discretized points were still correct.

Bug fixAviation Standards

The class com.luciad.format.aixm.decoder.TLcdAIXMILSHandler did not correctly set a descriptor for the collocated DME objects in the ILS model descriptor. This DME descriptor is now properly set while decoding, and can be retrieved through TLcdAIXMILSModelDescriptor.getDMEDescriptor().

7.0

ImprovementAviation Standards

The DAFIF decoders no longer discard objects with an unsupported or unknown geodetic datum if the record also contains a WGS84-based lon/lat coordinate pair.

ImprovementAviation Standards

ALcdDAFIFDecoder has been extended with two methods, setInputStreamFactory(ILcdInputStreamFactory) and getInputStreamFactory(), which allow users to set a custom ILcdInputStreamFactory. An ILcdInputStreamFactory is used to create InputStream objects for source files. By default, TLcdInputStreamFactory is used.

ImprovementAviation Standards

TLcdARINCDecoder has been extended with two methods, setInputStreamFactory(ILcdInputStreamFactory) and getInputStreamFactory(), which allows users to set a custom ILcdInputStreamFactory. An ILcdInputStreamFactory is used to create InputStream objects for source files. By default, TLcdInputStreamFactory is used.

Bug fixAviation Standards

ILcdDAFIFParachuteJumpAreaFeature contains a new altitude reference feature, which allows applications to distinguish Above Ground Level (AGL) altitudes from Above Mean Sea Level (AMSL) ones. Also, the decoder no longer sets the altitude unit to null if the altitude reference is AGL.

Upgrade considerationAviation Standards

The class com.luciad.ais.view.gxy.TLcdGXYProcedureTrajectoryLegLabelPainter and the identical sample class samples.ais.view.gxy.TLcdGXYProcedureTrajectoryLegLabelPainter do now implement ILcdGXYMultilabelPainter, since they paint a label at each leg of a procedure. These changes may be incompatible if any code explicitly invokes the labelBoundsSFCT() or paintLabel() method: the current implementation requires to set the label index and sublabel index before invoking these methods.

Upgrade considerationAviation Standards

The implementations of ILcdShape in com.luciad.ais.shape.** and com.luciad.ais.model.** have received consistent implementations of the methods clone, equals and hashCode. Notably, the method clone now always delegates to the method super.clone, which ensures that a class of the proper type is created, even for extensions. The methods equals and hashCode always compare the classes and the properties of the shapes, like coordinates, height, etc. Note that this may still yield surprising results if extensions don't properly override these implementations, which was already the case in previous versions. These changes may be incompatible if any code explicitly or implicitly relies on previously missing or imperfect implementations.

6.2

6.2.21

Bug fixAviation Standards

The runway painter com.luciad.ais.symbology.icao.TLcdICAORunwayPainter now returns a valid ILcdGXYPainter for each ILcdRunway, regardless of its geometry. In the past, null was returned for runways with less than two points, which could lead to a NullPointerException. Note that the ILcdGXYPainter that is now returned for ILcdRunway objects with less than two points does not paint the runway, as this cannot be done according to the ICAO specification.

6.2.12

Bug fixAviation Standards

The class com.luciad.format.aixm.decoder.TLcdAIXMAirspaceHandler now omits all airspaces that don't have a geometry from the resulting model. In the past, only association-based airspaces without a geometry were omitted. An error message specifying these omitted airspaces can be retrieved through the method getErrorMessage() in TLcdAIXMModelDecoder, after the decoding process.

6.2.04

ImprovementAviation Standards

A new method setDefaultGeodeticDatum(ILcdGeodeticDatum) has been introduced in all ILcdARINCHandler implementations, to make it possible to set a default datum. This datum is used for records which do not explicitly mention a geodetic datum. By default, WGS 84 is set.

Bug fixAviation Standards

TLcdDAFIFRefuelingTrackDecoder incorrectly interpreted UHF frequencies as being expressed in Hertz, where they should have been MegaHertz. The values of the PRIMARY_UHF_FREQUENCY_UNIT and BACKUP_UHF_FREQUENCY_UNIT fields defined by ILcdDAFIFRefuelingTrackFeature are now set to TLcdFrequencyUnit.MHZ_UNIT instead of TLcdFrequencyUnit.HZ_UNIT.

Bug fixAviation Standards

A memory leak has been fixed in the DAFIF independent decoders:
  • TLcdDAFIFIndependentAerodromeNavaidDecoder
  • TLcdDAFIFIndependentATSRouteDecoder
  • TLcdDAFIFIndependentHelipadDecoder
  • TLcdDAFIFIndependentHoldingDecoder
  • TLcdDAFIFIndependentILSDecoder
  • TLcdDAFIFIndependentProcedureDecoder
  • TLcdDAFIFIndependentRunwayDecoder
After decoding, these decoders still kept a reference to the external models needed while decoding the domain objects.

Bug fixAviation Standards

A memory leak has been fixed in TLcdAIXMModelDecoder, which caused that all registered ILcdAIXMHandler instances were still referenced after having invoked the method removeAllHandlersForTypeToBeDecoded().

Bug fixAviation Standards

The DAFIF ILS decoder TLcdDAFIFILSDecoder, which generates a model list with localizer, glide slope, marker and DME objects, did not correctly parse the frequency feature: the implicit comma between the fourth and fifth character in the record value was ignored, resulting in frequencies that were a factor 1000 larger than expected.

6.2.03

Bug fixAviation Standards

The (optional) additional points between the low end and high end of runways were not correctly decoded by TLcdDAFIFRunwayDecoder.

6.2

ImprovementAviation Standards

The decoders TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder are now capable of decoding respectively airport and heliport communication records (regular records and remark records). These communication records are modeled by com.luciad.ais.model.service.TLcdFeaturedService and are available as a feature for the associated airport/heliport object (by default, this is TLcdFeaturedAerodrome). The corresponding feature name is ILcdDAFIFAerodromeFeature.AERODROME_COMMUNICATIONS. The communication records are decoded by default by TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder. To prevent this, one can exclude ILcdDAFIFAerodromeFeature.AERODROME_COMMUNICATIONS from the list of features through the methods setAirportFeaturesToBeDecoded() and setHeliportFeaturesToBeDecoded() in respectively TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder.

The supported features for the communication object itself are listed in com.luciad.format.dafif.model.communication.ILcdDAFIFCommunicationFeature. By default, all these features are decoded by TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder. To restrict this list, one can use the new method setCommunicationFeaturesToBeDecoded() in TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder. Finally, the classes TLcdDAFIFAerodromeModelDescriptor and TLcdDAFIFHeliportModelDescriptor have two extra methods, setCommunicationDescriptor() and getCommunicationDescriptor(), that allow to set/retrieve a featured descriptor for the communication object.

ImprovementAviation Standards

The class TLcdAIXMDefaultLayerFactory has been extended with a protected method createGXYLayer(), which by default returns an instance of TLcdGXYLayer. This method is used to create a layer instance for each model.

ImprovementAviation Standards

The class TLcdARINCDefaultLayerFactory has been extended with a protected method createGXYLayer(), which by default returns an instance of TLcdGXYLayer. This method is used to create a layer instance for each model.

ImprovementAviation Standards

New ILcdARINCHandler implementations have been added to com.luciad.format.arinc.decoder to decode airport/heliport/enroute communications: TLcdARINCAirportCommunicationHandler, TLcdARINCHeliportCommunicationHandler and TLcdARINCEnrouteCommunicationHandler. All the handlers make use of the general service domain object in AIS (see com.luciad.ais.model.service) to model the communication objects. Decoded models have as model descriptor respectively an instance of TLcdARINCAirportCommunicationModelDescriptor, TLcdARINCHeliportCommunicationModelDescriptor and TLcdARINCEnrouteCommunicationModelDescriptor. The interface ILcdARINCCommunicationFeature represents general features of an ARINC communication object; ILcdARINCAerodromeCommunicationFeature and ILcdARINCEnrouteCommunicationFeature extend this interface to add more specific features for airports/heliports and enroutes.

ImprovementAviation Standards

A new ILcdAIXMHandler implementation has been added com.luciad.format.aixm.decoder to decode procedures (SID, STAR, IAP): TLcdAIXMProcedureHandler. The package com.luciad.format.aixm.model.procedure contains classes and interfaces for all procedure related aspects within AIXM.

ImprovementAviation Standards

TLcdDAFIFLayerConfiguration has been extended with new properties to set the icon size for all icon-based symbols.

ImprovementAviation Standards

TLcdARINCLayerConfiguration has been extended with new properties to set the icon size for all icon-based symbols.

ImprovementAviation Standards

TLcdAIXMLayerConfiguration has been extended with new properties to set the icon size for all icon-based symbols.

ImprovementAviation Standards

The class com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider has been extended with the methods setIconSize(int) and getIconSize(), which allow to change the icon size. The default value is still the same, namely 16. Furthermore, image icons are now lazy loaded instead of precomputed as in the past. Image icons that are never requested will therefore not be cached in memory anymore.

ImprovementAviation Standards

A new domain object is added to AIS to represent service objects (e.g. an Air Traffic Control service). The new package com.luciad.ais.model.service contains several interfaces and classes that can be used to model services. The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two factory methods to create service objects. Please refer to the AIS Developer's Guide and the reference guide for more details.

Bug fixAviation Standards

The airspace decoders TLcdDAFIFAirspaceDecoder and TLcdDAFIFSpecialUseAirspaceDecoder did not correctly handle altitude values that were defined by 6 instead of 5 characters in a data record. In that case, the last character was skipped.

Bug fixAviation Standards

ILcdDAFIFMilitaryTrainingRoutePointFeature and ILcdDAFIFRefuelingTrackFeature contain several new features to represent altitude values. These new features supersede all previously existing altitude features for which the unit of measure was specified as a TLcdDistanceUnit. The new features have the same names as the originals, but use an additional "_MEASURE" suffix. The value of these new features is of type ILcdISO19103Measure, which provides both the altitude value and an appropriate unit of measure (a TLcdAltitudeUnit).

Bug fixAviation Standards

TLcdDAFIFMilitaryTrainingRouteDecoder and TLcdDAFIFRefuelingTrackDecoder now always fill in the altitude unit features of the decoded domain objects. Previously, altitudes expressed as Flight Levels would result in the altitude unit features being null.

Bug fixAviation Standards

The implementations of ILcdDefaultDisplayNameSettable.getDefaultDisplayName() in com.luciad.ais.model.* did not check whether the feature at the default display name index was set.

Bug fixAviation Standards

TLcdDAFIFLoader could not handle source paths that contained the prefix "file:".

Upgrade considerationAviation Standards

A new interface ILcdEditableAirspaceAssociation has been introduced in the package com.luciad.ais.model.airspace, which defines the operations to edit the attributes and relationships of an airspace association. The class TLcdAirspaceAssociation now also implements this interface, next to ILcdAirspaceAssociation. The general domain object factory class com.luciad.ais.model.ALcdAISObjectFactory has been extended with a factory method createEditableAirspaceAssociation() to create objects of the type ILcdEditableAirspaceAssociation.

6.1

6.1.17

Bug fixAviation Standards

TLcdRefuelingTrackModelDescriptor no longer returns the same feature index for the RECEIVER_CHANNEL and TANKER_CHANNEL attributes defined in ILcdDAFIFRefuelingTrackFeature.

6.1.16

Bug fixAviation Standards

TLcdDAFIFMilitaryTrainingRouteDecoder no longer duplicates the ENROUTE_ALTITUDE_2_UNIT feature, and correctly reads the ENROUTE_ALTITUDE_2 value instead.

6.1.15

Bug fixAviation Standards

The properties TLcdAIXMLayerConfiguration.CFG_GEOBORDER_ICONSTYLE_COLOR and TLcdAIXMLayerConfiguration.CFG_GEOBORDER_ICONSTYLE_SELECTIONCOLOR were not used in the past. This has been fixed.

6.1.14

Bug fixAviation Standards

The icon used by com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider to represent a VORTAC object (see enhancement 2607) was corrupted in all previous 6.1 releases. This has been fixed.

6.1.06

ImprovementAviation Standards

The default configuration properties in TLcdAIXMLayerConfiguration are now fully documented.

ImprovementAviation Standards

The default configuration properties in TLcdARINCLayerConfiguration are now fully documented.

6.1.01

ImprovementAviation Standards

Support for the following geodetic datum codes has been added: ROM, BRN, DGI, IGL, DLX PRD and RNB. All geodetic datum codes defined by the AIXM 3.3 specification are now supported.

Bug fixAviation Standards

TLcdDAFIFLonLatParser did not correctly handle longitudes or latitudes that contained a single '/' character in the part which represent the 100th of a second, which is possible according to the DAFIF specification. In that case, the coordinates where moved to N00000000, E000000000.

6.1

ImprovementAviation Standards

The mechanism that is used by the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath to prevent self-intersecting discretizations can now be controlled by the user of the API: the class has been extended with a protected method acceptCorrection(ILcdGeoPathLeg, int, ILcdPoint, ILcdPoint), which is invoked for each planned data correction. By default, this method returns true in all cases. Please refer to the javadoc of the class and the method for more details.

ImprovementAviation Standards

Support has been added for additional local horizontal datums in the method getLocalHorizontalDatum(String) in com.luciad.format.dafif.decoder.ALcdDAFIFDecoder: OEG, VOR, OGB, AFG, CHU, QAT, YAC, ZAN, LIB, LUZ, MIK, MAS, LEH.

ImprovementAviation Standards

The performance of the DAFIF data preparator (samples.decoder.dafif.datapreparator.DAFIFDataPreparator or com.luciad.format.dafif.tools.TLcdDAFIFDataPreparatorMain) has been greatly improved. This tool can be used to split large DAFIF files into smaller ones. The division of the DAFIF data is based on the two letter ICAO region found in each record.

ImprovementAviation Standards

The class com.luciad.ais.model.airspace.TLcdAirspace has been extended with a method getSegmentIndexForPoint(int), which returns the airspace segment that contains the discretized point at a given index.

ImprovementAviation Standards

Layers created with TLcdDAFIFDefaultLayerFactory now use a separate icon for VOR, VOR-DME and VORTAC objects, following the ICAO Annex 4 standard. In the past, the same icon was used for all VOR objects.

ImprovementAviation Standards

Layers created with TLcdARINCDefaultLayerFactory now use a separate icon for VOR, VOR-DME and VORTAC objects, following the ICAO Annex 4 standard. In the past, the same icon was used for all VOR objects.

ImprovementAviation Standards

Layers created with TLcdAIXMDefaultLayerFactory now use a separate icon for VOR, VOR-DME and VORTAC objects, following the ICAO Annex 4 standard. In the past, the same icon was used for all VOR objects.

ImprovementAviation Standards

The class com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider has been extended with a method setNavaidTypeIndex(int), which allows to set the index of a feature that specifies the navaid type; these types are defined in the type safe enumeration class TLcdNavaidType. When the index is specified, this feature is used to make a distinction between a VOR, a VOR-DME and a VORTAC object to provide a separate icon for these types following the ICAO Annex 4 standard. Otherwhise, the same icon is used for all VOR objects, as in the past.

Bug fixAviation Standards

The class com.luciad.format.arinc.decoder.TLcdARINCRunwayHandler didn't reset its internal state when decoding a new model, which caused problems when the same object of this class was used for multiple decoding steps.

Bug fixAviation Standards

TLcdARINCDecoder failed to close its input streams if an exception occured while decoding.

Bug fixAviation Standards

ALcdDAFIFMultiModelDecoder failed to close its input streams if an exception occured while decoding.

Upgrade considerationAviation Standards

The method getLocalHorizontalDatum(String) in com.luciad.format.dafif.decoder.ALcdDAFIFDecoder now always throws an IllegalArgumentException when a geodetic datum code is not supported or unknown. In the past, this method returned null for a partial list of unsupported codes and generated an exception for the remaining unsupported codes, which was not consistent. All implementations of ALcdDAFIFDecoder have been updated to properly catch this exception, and add a corresponding message to the error message object (see ALcdDAFIFDecoder.getErrorMessage()).

6.0

6.0.14

ImprovementAviation Standards

The class com.luciad.format.aixm.decoder.TLcdAIXMAirspaceHandler, which is used to decode airspaces, contained a filter that removed all airspaces of type TLcdAirspaceType.PART. This filter has been removed to let the user choose whether these airspaces must be filtered or not. By implementing ILcdAIXMModelFilter, one can create a custom filter for the decoder.

Bug fixAviation Standards

A bug has been fixed in TLcdARINCProcedureHandler which caused a wrong altitude setting for an ILcdProcedureLeg, when a procedure record contained the value 'V' for the altitude description.

Bug fixAviation Standards

A problem has been fixed in com.luciad.format.aixm.decoder.TLcdAIXMAirspaceHandler which sometimes caused an invalid airspace reference inside ILcdAirspaceAssociation objects, in the case the source data contained multiple level airspace associations.

Bug fixAviation Standards

An additional issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath, which sometimes resulted in the lack of a point on the boundaries of a discretized airspace segment of type SUB_POINT_LIST (e.g. a geoborder).

Bug fixAviation Standards

All ILcdAIXMHandler implementations now use WGE (WGS 1984) as default datum code instead, as defined in the AIXM 3.3 specification. In the past, domain objects without datum code were ignored and an error message was printed.

6.0.12

Bug fixAviation Standards

Carriage returns and/or newlines in feature values of domain objects were ignored by the decoder.

6.0.09

ImprovementAviation Standards

A new method getSubPointlist() has been introduced in the class com.luciad.ais.model.airspace.TLcdSubPointlistAirspaceSegment, to allow the user to retrieve the associated ILcdPointList.

6.0.08

Bug fixAviation Standards

A bug has been fixed in the parsing mechanism of longitude and latitude coordinates: a fraction was always interpreted as the fraction for seconds, but this is not always correct as it sometimes represents the fraction for degrees or minutes, depending on the position of the period.

Bug fixAviation Standards

After decoding AIXM update files, the updated models now generate correct model changed events for each new, withdrawn or changed object.

6.0.07

Bug fixAviation Standards

Additional improvements have been made to com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath to prevent self-intersecting discretizations.

Bug fixAviation Standards

An issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath that sometimes resulted in a wrong mapping between a point index and a geopath leg, which is used by the methods getLegForPoint() and getLegIndexForPoint(). In the case of SUB_POINT_LIST legs, the first point of the next leg was in some case assumed to be part of the SUB_POINT_LIST leg.

Bug fixAviation Standards

Fixed an issue in TLcdDAFIFProcedureDecoder that could make the decoder fail to retrieve runways referenced by a procedure leg.

6.0

ImprovementAviation Standards

A new ILcdARINCHandler implementation has been added to com.luciad.format.arinc.decoder to decode holdings: TLcdARINCHoldingHandler. Decoded models have as model descriptor an instance of com.luciad.format.arinc.model.procedure.TLcdARINCHoldingModelDescriptor. The interface ILcdARINCHoldingFeature represents the features of an ARINC holding object, and the class TLcdARINCHoldingFeatureClassMapper keeps track of their corresponding classes.

Upgrade considerationAviation Standards

com.luciad.ais.model.ILcdFeatureIndexedModel, ILcdFeatureIndexedAnd2DBoundsIndexedModel and TLcdFeatureIndexedAnd2DBoundsIndexedModel were moved to the Core in package com.luciad.model. This means any code referring these classes will no longer compile. By just making these search and replaces in (the import statements of) the source code, things will compile again:
  • "com.luciad.ais.model.ILcdFeatureIndexedModel" -> "com.luciad.model.ILcdFeatureIndexedModel"
  • "com.luciad.ais.model.ILcdFeatureIndexedAnd2DBoundsIndexedModel" -> "com.luciad.model.ILcdFeatureIndexedAnd2DBoundsIndexedModel"
  • "com.luciad.ais.model.TLcdFeatureIndexedAnd2DBoundsIndexedModel" -> "com.luciad.model.TLcdFeatureIndexedAnd2DBoundsIndexedModel"

5.3

5.3.17

Bug fixAviation Standards

The class com.luciad.format.aixm.decoder.TLcdAIXMRunwayHandler now uses Double instances for the features ILcdRunwayFeature.WIDTH and ILcdRunwayFeature.LENGTH instead of Float instances, which was not correct according to the documentation of these features.

5.3.16

ImprovementAviation Standards

The class com.luciad.ais.symbology.icao.TLcdICAOAirspaceDetailedLabelPainter has been extended with a new method setClassIndex(int), which is used to set the index of the airspace class feature (ILcdAirspaceFeature.CLASS). The airspace class feature will be used in the label to display the actual class instead of the airspace type feature, if the type feature has as value TLcdAirspaceType.CLASS.

Bug fixAviation Standards

An issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath, which sometimes resulted in the lack of a point on the boundaries of a discretized airspace segment of type SUB_POINT_LIST (e.g. a geoborder).

5.3.15

Bug fixAviation Standards

The geopath leg types GEODESIC_LINE, RHUMB_LINE, ARC and ARC_BY_EDGE in com.luciad.ais.shape.ILcdGeoPathLeg mentioned in their documentation that the geometry was determined by the previous leg and the current leg, which was not correct and did not correspond to the implementation in TLcdDiscretizedLonLatGeoPath. This implementation uses the next leg instead of the previous leg to determine the geometry. The documentation in ILcdGeoPathLeg has been updated accordingly.

5.3.12

Bug fixAviation Standards

TLcdDAFIFLoader didn't work correctly under JDK 1.5 when a DAFIF source path was used that contained spaces.

5.3.11

ImprovementAviation Standards

The class com.luciad.format.aixm.decoder.TLcdAIXMModelDecoder makes it possible to set a custom ILcdInputStreamFactory, but this ILcdInputStreamFactory was never used when performing an AIXM update operation. This has been fixed.

5.2

5.2.03

ImprovementAviation Standards

The available configuration properties in com.luciad.format.aixm.TLcdAIXMLayerConfiguration are now fully documented.

ImprovementAviation Standards

The available configuration properties in TLcdDAFIFLayerConfiguration are now fully documented.

ImprovementAviation Standards

The available configuration properties in TLcdARINCLayerConfiguration are now fully documented.

Upgrade considerationAviation Standards

Improvements have been made to com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath to prevent self-intersecting discretizations, which is typically caused by data inaccuracies. In particular, the discretization of ILcdGeoPathLeg instances of the type ILcdGeoPathLeg.ARC and ILcdGeoPathLeg.SUB_POINT_LIST are adapted to resolve these self-intersections. Additionally, the parameter list of an ILcdGeoPathLeg of type ILcdGeoPathLeg.ARC can now optionally be extended with a radius, which will be used in the case of an inaccurate arc center. This change will only be incompatible in some implementations which have an explicit check on the number of parameters associated with an ILcdGeoPathLeg instance of type ILcdGeoPathLeg.ARC: this was before exactly 4 but can now be 5.

5.2

ImprovementAviation Standards

A new interface com.luciad.ais.model.aerodrome.ILcdRunwayClinePoint has been added to model centre line points of a runway. It has an editable extension ILcdEditableRunwayClinePoint, a default implementation TLcdRunwayClinePoint and a featured extension TLcdFeaturedRunwayClinePoint. The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create runway centre line points.

ImprovementAviation Standards

The package com.luciad.format.aixm is a new LuciadMap option, available since v5.2. This option can be used to decode AIXM data. A developer guide and a sample are included.

ImprovementAviation Standards

A new domain object is added to AIS to represent association-based airspaces. These airspaces are built from other airspaces (single or also association-based) using different geometric combinations or association types. The AIXM specification was taken as the basis for this domain object. The basic interface is com.luciad.ais.model.airspace.ILcdAssociationBasedAirspace, which extends from ILcdShapeList. It has an editable extension ILcdEditableAssociationBasedAirspace, a default implementation TLcdAssociationBasedAirspace and a featured extension TLcdFeaturedAssociationBasedAirspace. An association-based airspace contains one or more associations; these associations are represented by a new interface ILcdAirspaceAssociation, which has a default implementation TLcdAirspaceAssociation. An ILcdAirspaceAssociation contains an airspace (single or association-based), an association type and a sequence number. The association type is one of the types defined by the new type safe enumeration class TLcdAirspaceAssociationType. Furthermore, the interface com.luciad.ais.model.airspace.ILcdGenericAirspace is introduced to have a new top-level airspace; the interfaces ILcdAirspace and ILcdAssociationBasedAirspace are extensions from this general interface. The airspace painter com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter and airspace label painters com.luciad.ais.symbology.icao.TLcdICAOAirspaceLabelPainter and com.luciad.ais.symbology.icao.TLcdICAOAirspaceDetailedLabelPainter are updated to provide support for ILcdAssociationBasedAirspace objects (next to the previously supported ILcdAirspace objects). The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create association-based airspaces.

ImprovementAviation Standards

A new ILcdARINCHandler implementation has been added to com.luciad.format.arinc.decoder to decode heliports: TLcdARINCHeliportHandler.

Bug fixAviation Standards

The methods setBeginPoint(ILcdPoint) and setEndPoint(ILcdPoint) in the class com.luciad.ais.model.route.TlcdRouteSegment cloned the supplied point as an ILcd3DEditablePoint, making it impossible to retain specific implementations (e.g. featured) of ILcdPoint. This clone operation has now been removed.

Upgrade considerationAviation Standards

The interface com.luciad.ais.model.route.ILcdEditableRoute has been extended with two methods removeSegment(ILcdRouteSegment) and removeSegmentAt(int) which make it possible to remove ILcdRouteSegment objects. To remain compatible, each implementation of this interface (either directly or through an extension) should provide an implementation for these methods:
  • removeSegment(ILcdRouteSegment) removes the given ILcdRouteSegment object from the route.
  • removeSegmentAt(int) removes the ILcdRouteSegment with the given index from the route.

Upgrade considerationAviation Standards

The return type of the method getAirspace() in com.luciad.ais.symbology.icao.TLcdICAOAirspaceDetailedLabelPainter and in com.luciad.ais.symbology.icao.TLcdICAOAirspaceLabelPainter has been changed from ILcdAirspace to the more general interface ILcdGenericAirspace from which ILcdAirspace extends. It is however improbable that this method is called from user code.

5.1

5.1.08

Bug fixAviation Standards

When using the default constructor of TLcdDAFIFDefaultLayerFactory, each created layer was initially not visible.

Bug fixAviation Standards

When using the default constructor of TLcdARINCDefaultLayerFactory, each created layer was initially not visible.

5.1.07

Bug fixAviation Standards

The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath has been extended with a method invalidate(), which makes it possible to discard the cached discretisation and recalculate it. This is necessary when an individual ILcdGeoPathLeg has been changed. Other domain object implementations of ILcdGeoPath that performed a discretisation using this class had the same problem: TLcdAirspace, TLcdHelipad and TLcdParachuteJumpArea. These classes have also been extended with a method invalidate().

5.1

ImprovementAviation Standards

A separate model descriptor for each domain object used by DAFIF has been introduced (as an extension of the corresponding general AIS model descriptor), to facilitate detection of the origin of data. DAFIF decoders now produce models using these specific model descriptors instead of the general AIS model descriptors.

ImprovementAviation Standards

A separate model descriptor for each domain object used by ARINC has been introduced (as an extension of the corresponding general AIS model descriptor), to facilitate detection of the origin of data. ARINC handlers now produce models using these specific model descriptors instead of the general AIS model descriptors.

ImprovementAviation Standards

A new domain object is added to AIS to represent geographical borders. The basic interface is com.luciad.ais.model.geoborder.ILcdGeoborder. This interface has a default implementation com.luciad.ais.model.geoborder.TLcdGeoborder and a featured extension com.luciad.ais.model.geoborder.TLcdFeaturedGeoborder. For a list of features and the corresponding class mappings, see com.luciad.ais.model.geoborder.ILcdGeoborderFeature and com.luciad.ais.model.geoborder.TLcdGeoborderFeatureClassMapper. The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create TLcdFeaturedGeoborder instances.

ImprovementAviation Standards

The interface com.luciad.ais.shape.ILcdGeoPathLeg is extended with a new leg type SUB_POINT_LIST. This leg type can be used to create geopath segments containing a subset of a pointlist, for example a geographical border. The subset is automatically determined in the context of a geopath: it consists of the points lying between the points that are repectively closest to the previous and the next geopath vertex. As a geographical border segment is often used in the context of airspaces, a new memory-efficient implementation of com.luciad.ais.model.airspace.ILcdEditableAirspaceSegment with SUB_POINT_LIST as leg type is introduced (com.luciad.ais.model.airspace.TLcdSubPointlistAirspaceSegment). This implementation uses a shared pointlist instead of copying the data like the default implementation com.luciad.ais.model.airspace.TLcdAirspaceSegment.

5.0

5.0.05

Bug fixAviation Standards

The default (selection) color in the airspace painter com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter can now be customized: the (selection) color of the line style (see method setLineStyle()) will be used as default (selection) color when an airspace has no classification or when no specific classification - color match can be retrieved.

5.0

ImprovementAviation Standards

ARINC has been separated from the AIS package. For changes and bug fixes prior to LuciadMap 4.4,please refer to releaseNotes_Ais.html.

ImprovementAviation Standards

DAFIF has been separated from the AIS package. For changes and bug fixes prior to LuciadMap 4.4, please refer to releaseNotes_Ais.html.

ImprovementAviation Standards

The bandwidth parameter in the method setBandWidth() in com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter must now be specified in meters.

ImprovementAviation Standards

ARINC and DAFIF have been separated from the AIS package. For future changes and bug fixes, please refer to releaseNotes_Arinc.html and releaseNotes_Dafif.html.

4.3

4.3.09

ImprovementAviation Standards

Improved robustness and error handling of TLcdProcedureGeometryCalculator.

4.3.04

ImprovementAviation Standards

Changes to DAFIF data preparator:
  • Added switch to disable output of bounds files.
  • Changed buffer sizes to improve read/write performance.
  • Added status listener mechanism with some basic progress messages.

ImprovementAviation Standards

The 3D procedure geometry calculator now also climbs during the transitions between two legs (i.e. during turns).

4.3.03

ImprovementAviation Standards

Improved the robustness of the DAFIF decoders when searching through auxiliary models (e.g. navaids).

ImprovementAviation Standards

The DAFIF decoders now support the "WGX" datum.

4.3.01

ImprovementAviation Standards

The default DAFIF and ARINC layer factories now support configuration of airspace and procedure layers.

4.3

ImprovementAviation Standards

Changes to the API parts that were previously available from AIS. These should have been rarely used in applications using ARINC or DAFIF decoders, as they were undocumented. If they were used explicitly in an application, the changes may not be compatible with that application.
  • com.luciad.ais.symbology.TLcdAISDefaultPointPainterSymbolProvider is now a standard ILcdObjectIconProvider. Support for separate selection or snap icons has been removed. This can be implemented by using separate instances of TLcdAISDefaultPointPainterSymbolProvider with different colors.
  • ILcdDomainFactory has been renamed and made into an abstract class ALcdAISDomainObjectFactory.

ImprovementAviation Standards

Changes to the DAFIF decoder:
  • Support for object filtering is added. The filter is applied before objects are added to the decoded model. Documentation and sample code for filtering has been added.
  • A TLcdDAFIFProcedureDecoder and TLcdDAFIFIndependentProcedureDecoder was added that decodes procedures from an DAFIF file.
  • Next to the TLcdDAFIFDefaultLayerFactory, a TLcdDAFIFLayerConfiguration class was added. It follows the same idea of specifying a number of style properties for DAFIF data, but can apply them on an exisiting layer.

ImprovementAviation Standards

Changes to the ARINC decoder:
  • Support for object filtering is added. The filter is applied before objects are added to the decoded model. Documentation and sample code for filtering has been added.
  • A TLcdARINCProcedureHandler was added that decodes procedures from an ARINC file.
  • Next to the TLcdARINCDefaultLayerFactory, a TLcdARINCLayerConfiguration class was added. It follows the same idea of specifying a number of style properties for ARINC data, but can apply them on an exisiting layer.
  • ILcdARINCHandler has support for accumulating error messages through the newModel method.

ImprovementAviation Standards

Support for Terminal Procedures (based on ARINC 424 version 15), including SID, STAR and IAP, is added to AIS.

ImprovementAviation Standards

The ARINC and DAFIF decoders are part of the AIS optional module. There are no separate zip files and developer guides for ARINC or DAFIF. These are replaced by a single zip file containing AIS and a single AIS_DeveloperGuide.pdf.

ImprovementAviation Standards

The API for AIS is opened up in 4.3. This means that all classes for domain objects, shapes, painters etc. used in AIS are now available in the API. Previous releases only provided a stripped down API for DAFIF (from 4.0) and ARINC (from 4.2) decoders. The availability of the full AIS API enables a more flexible use of DAFIF and ARINC data (e.g. writing custom label painters), and allows the development of AIS based applications that easily show aeronautical data on maps.