2022.1.05

ImprovementLuciadLightspeed

LCD-12794
You can now customize the location of SLD external graphics at runtime. To support this use case, a new interface ILcdSLDOnlineResourceResolver can be implemented and configured on a TLcdSLDContext. The interface allows to resolve TLcdSLDOnlineResource instances, which are used to represent the location of external graphics in an SLD file.

ImprovementLucy (LuciadLightspeed)

LUCY-5022, LUCY-5023
TLcyLspMapAddOn's terrain exaggeration slider is now also shown for 2.5D maps, i.e. 3D views with a non-geocentric reference. The lighting controls are not shown anymore for 2.5D maps, because they are not supported.

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.

ImprovementDefense Symbology

LCD-12797
The new TLspMilitarySymbologyLayerBuilder lets you visualize APP-6 and MIL-STD-2525 symbols within the same layer.

ImprovementDefense Symbology

LCD-12753

Improved the rendering of the Sea Mine symbols when their fill is disabled for various standards. When their symbol fill is disabled, the hierarchy representation is no longer filled, revealing additional details such as the 'N' icon inside the "Ground (Bottom) Non-Mine Mine-Like Contact" MIL-STD-2525c symbol. This makes the Sea Mine symbols more recognisable. This change affects the Sea Mine symbols in the following standards: APP-6D, MIL-STD-2525c, MIL-STD-2525d.

Unfilled MIL-STD-2525c Sea Mines before the change
Unfilled MIL-STD-2525c Sea Mines before the change.
Unfilled MIL-STD-2525c Sea Mines after the change
Unfilled MIL-STD-2525c Sea Mines after the change.

ImprovementDefense Symbology

LCD-11202
The rendering of APP-6B Sea Mine symbols has been improved. The outline of their icon is now painted in the line color configured in their TLcdDefaultAPP6AStyle, where it used to be painted in the affiliation color.
APP-6B Sea Mines before the change
APP-6B Sea Mines before the change.
APP-6B Sea Mines after the change
APP-6B Sea Mines after the change.

ImprovementInfrastructure Standards

LCD-12528
Improved error message when trying to decode a DGN dataset to which the user has no access rights.

Bug fixLuciadLightspeed

LCD-11874
Fixed a crash when building a grid using TLspXYGridLayerBuilder with TLcdCartesianReference as reference.

Bug fixLuciadLightspeed

LCD-12805
In some cases, the XML framework could split up text content containing entities like the ampersand. This has been resolved.

Bug fixLuciadLightspeed

LCD-12799
TLcdGML32ArcByCenterPoint no longer returns incorrect bounds when using grid references.

Bug fixOGC Server

LCD-12806
The WFS server can now handle an unbound property name in a WFS Transaction Update request by interpreting it in the feature type's namespace.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-12784
Corrected the jet stream symbol for the APP-6A, APP-6B, APP-6C symbologies.
APP-6A APP-6B APP-6C Jet stream
The corrected symbol for the APP-6A, APP-6B and APP-6C jet stream symbols.

Bug fixDefense Symbology

LCD-12781
Changed the default label position from "EAST" to "CENTER" for all symbols where the location is not predefined (all freeform/polygon shaped tactical graphics), for all supported symbologies (MIL_STD_2525b, MIL_STD_2525c, MIL_STD_2525d, APP-6A, APP-6B, APP-6C, APP-6D) to closer follow the specifications. Note that you can override this default by using ILinSymbologyStyle.setLabelPosition(int aPosition)

Bug fixDefense Symbology

LCD-12780
Corrected the icons for the APP-6A and APP-6B Thunderstorm symbols W*A*ST----***** and W*A*STR---*****.
APP-6A APP-6B Thunderstorm
The corrected icons for the APP-6A and APP-6B Thunderstorm symbols.

Bug fixDefense Symbology

LCD-12616
Fixed the definition for MIL-STD-2525d and APP-6D Linear Targets symbols, which, according to the specification, require "exactly" two anchor points in stead of "at least" two.

2022.1

2022.1.04

ImprovementLuciadLightspeed

TLcdOGCBinaryLogicOperator now has a constructor with a varargs parameter for conditions.

ImprovementLucy (LuciadLightspeed)

LUCY-5021
TLcySearchAddOn now also takes an ILcdDataObject's nested properties into account.

ImprovementLuciadLightspeed

LCD-12228
The Maven POM files for our third party dependencies, which we provide with the release, are now identical to the ones that are publicly available.

ImprovementAviation Standards

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

Bug fixLuciadLightspeed

LCD-12796
TLcdGeoJsonModelEncoder now correctly encodes data objects with list properties which in turn also contain data objects. Before this fix, the type names of those list elements would not be included in the resulting JSON.

Bug fixLuciadLightspeed

LF-2347
TLcdE57ModelDecoder now supports E57 data containing more points than Integer.MAX_VALUE, regardless of the number of points to be read set with the TLcdE57ModelDecoder#setMaxNumberOfPoints method.

Bug fixLuciadLightspeed

LF-2347
TLcdLASModelDecoder no longer throws an IOException if the data contains more points than Integer.MAX_VALUE, regardless of the number of points to be read set with the TLcdLASModelDecoder#setMaxNumberOfPoints method.

Bug fixLuciadLightspeed

LCD-12770
TLspParameterizedIconStyle: fixed a memory leak that could occur when using an ILcdParameter in one of the expressions on the style.

Bug fixLuciadLightspeed

LCD-12786
The value returned by TLcdSLDFeatureTypeStylePainter#getCreationClickCount was not correct in case of a model with multiple geometry types and a layer with SLD styling rules that filter on the geometry type. This could lead to incorrect object creation behavior, which relies on this method to know how many points are needed.

Bug fixLuciadLightspeed

LCD-12785
The built-in custom OGC function TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME, used to identify the type of a geometry value, could not handle GML polygons.

Bug fixTiling Engine

LF-2347
TLfnPointCloudPreprocessor now supports point cloud data containing more points than Integer.MAX_VALUE.

2022.1.03

ImprovementInfrastructure Standards

LCD-12690
Changed the conversion of PolyMesh objects in Binz datasets to OGC 3D Tiles: sharp edges (> 30°) will now be preserved instead of smoothed out.

ImprovementInfrastructure Standards

LCD-12605
TLcd3DTilesProcessorBuilder: Now produces textures at multiples of four for data sources coming from reality capture data. This improves the ability for clients to compress the textures on the GPU.

ImprovementInfrastructure Standards

LCD-12385
TLcdIFCModelDecoder now supports IfcFacetedBrepWithVoids.

ImprovementInfrastructure Standards

LCD-12776
Visualisation of DWG datasets now correctly handles line width and dash lengths when the unit of measurement is set in the model reference.

Bug fixLuciadLightspeed

LCD-12772
When transforming from a grid reference that uses TLcdGeodetic to a geodetic reference, bounds that extend over the date line were transformed into bounds that don't include the date line.

Bug fixLuciadLightspeed

LCD-12773
The built-in custom OGC function TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME, used to identify the type of a geometry value, could not handle GML geometry properties.

Bug fixDefense Symbology

LCD-12754
Fixed a configuration issue with the MIL-STD-2525c "Law Enforcement - Prison" (6.X.3.4.11) symbol where it was not possible to set the symbol's echelon modifier value to "Installation" or "Feint Dummy Installation". This which caused the Prison symbol to be rendered without the installation echelon indicator.

Bug fixInfrastructure Standards

LCD-12750
TLcdIFCModelDecoder now supports IfcLine trimming with IfcParameterValue values.

2022.1.02

Bug fixLucy (LuciadLightspeed)

LCD-12431, LCD-12360
TLcyModelReferenceChooserPanel didn't open correctly when lcd_geoid_resources.jar is missing from the class path. Now it opens correctly, but it will just not add the references to the panel that depend on the resources in lcd_geoid_resources.jar.

Bug fixLuciadLightspeed

LCD-12431
When lcd_geoid_resources.jar is not added to the class path, TLcdEPSGReferenceParser would throw a RuntimeException instead of a ParseException when decoding a reference that makes use of the resources in that jar.

Bug fixLuciadLightspeed

LCD-12745
Fixed an issue that resulted in the error SQL logic error (near "-": syntax error) when opening certain GeoPackage files.

2022.1.01

ImprovementLuciadLightspeed

LCD-8587
Utility methods were added to calculate the distance of geodetic and rhumb lines, taking into account the point elevation. See:
  • TLcdEllipsoidUtil#geodesicDistance3D
  • TLcdEllipsoidRhumblineUtil#rhumblineDistance3D
  • TLcdSphereUtil#greatCircleDistance3D
  • TLcdSphereRhumblineUtil#rhumblineDistance3D

ImprovementLuciadLightspeed

LCD-12672
Maven Ant Tasks is no longer maintained, therefore, as suggested on the Maven Ant Tasks website, the Ant scripts that deploy the libraries to a Maven repository will now use Maven Artifact Resolver Ant Tasks instead.

ImprovementDatabase Connectors

LCD-12730

ImprovementOGC Server

LCD-12719
The sample OGC server now allows to request the XML schemas from the WMS server capabilities.

Bug fixLuciadLightspeed

LCD-12741
When using a display scale != 100%, labels could sometimes behave in an unstable manner. This is especially noticeable for labeling algorithms that continuously update label locations, like TLspContinuousLabelingAlgorithm.

Bug fixLuciadLightspeed

LCD-12721
TLcdE57ModelDecoder no longer throws an IOException for files that contain more than Integer.MAX_VALUE points, provided that setMaxNumberOfPoints() is first called to set a lower point count.

Bug fixOGC Server

LCD-12724
The fix implemented in LCD-12679 was not complete. The WMS capabilities now advertise the SLD operations in the correct XML namespace.

Bug fixInfrastructure Standards

LCD-12688
TLcdIFCModelDecoder now supports unit conversions with IfcReal or IfcInteger factors instead of throwing a NullPointerException.

Bug fixMaritime Standards

LCD-12740
Fixed an issue causing errors when opening cell files created by old versions of LuciadLightspeed / LuciadFusion.

Bug fixMaritime Standards

LCD-12532
Fixed an issue in TLcdS57ModelEncoder that caused exported cells to crash 7Cs SeeMyEnc when opening them.

2022.1

New featureLuciadLightspeed

LuciadLightspeed now ships with a component named lcd_aws. This component contains an ILcdInputStreamFactory that is capable of reading files from Amazon S3 cloud storage. Most model decoders that implement ILcdInputStreamFactoryCapable automatically pick up this factory by means of the services registry, and are now able to decode sources directly from S3. Please refer to Supported data types to find out which formats are supported exactly.

The implementation of this factory, named S3InputStreamFactory, is also available in sample code. It can be used as an example for developers aiming to add support for a different (cloud) storage technology, or simply in case a modified version of the factory is desired. For example to set the S3Client that is used, or changing the default AWS Credentials Provider.

New featureLuciadLightspeed

LuciadLightspeed now has support for the Canadian Geodetic Vertical Datum of 2013, as well as the associated EPSG references EPSG:6649 to EPSG:6665, EPSG:9711, EPSG:9714 and EPSG:9715.

ImprovementLucy (LuciadLightspeed)

LUCY-5003
TLcyAPP6AAddOn/TLcyMS2525bAddOn can now decode any APP-6 version and MIL-STD 2525 version, respectively, regardless of the configured symbology. Decoding and encoding also supports models with mixed versions of the same symbology (e.g. APP-6A and APP-6D). The configured add-on symbology is now only used for the creation of new symbols.

ImprovementLucy (LuciadLightspeed)

LUCY-5002
TLcySearchAddOn/SearchAddOn now supports search services for area coordinates.

ImprovementLuciadLightspeed

LCD-12572
The performance of TLcdEllipsoidRhumblineUtil#intersectionGeodesicRhumblineSFCT has improved one to two orders of magnitude for the case where the rhumbline is a meridian or a parallel.

ImprovementLuciadLightspeed

Added the findAndDecodeMetadata method to ILcdMetadataDecoder. This method returns the decoded metadata, together with the location of the metadata files.

ImprovementLuciadLightspeed

ILcdMetadataDecoder implementations (like TLcdISO19139MetadataDecoder) can now be discovered by the service loading mechanism. A new TLcdCompositeMetadataDecoder implementation has been added that will use the appropriate ILcdMetadataDecoder service to decode the given metadata source.

ImprovementOGC Server

LCD-12354
You can now plug in an ILcdWFSClientModelEncoderFactory by adding an @LcdServiceannotation to the implementation. This interface is used by WFS services to encode features. Only the factory with the highest priority is used. By default, a factory with support for GML 2 / 3.1 / 3.2 and GeoJSON is used.

Bug fixLuciadLightspeed

LCD-12479
Fixed an issue where an SLD styler would not always initialize correctly when combined with a custom ILspMapScaleProvider, causing objects to receive wrong styling until a repaint was forced.

Bug fixLuciadLightspeed

LCD-12340
A custom ILspMapScaleProvider can be used on a layer in a 3D view now. Before, optimizations would cause the map scale provider to not be properly taken into account.

Bug fixLuciadLightspeed

LCD-12430, LCD-12522
TLcdJPEG2000ModelDecoder: fixed an issue that prevented opacity bands in images from being applied correctly in an ILcdGXYView.

Bug fixLuciadLightspeed

LCD-12699
TLcdEllipsoidUtil#geodesicArea could return incorrect results for triangles with coinciding points.

Bug fixInfrastructure Standards

LCD-12641
TLcd3DTilesProcessorBuilder: Fixed an issue that would cause thin lines to appear at tile edges when DRACO compression was enabled.

Upgrade considerationLuciadLightspeed

For its new S3 functionalities, LuciadFusion makes the use of some new libraries:

  • AWS SDK Annotations (version 2.17.168)
  • AWS SDK Apache-client (version 2.17.168)
  • AWS SDK Arns (version 2.17.168)
  • AWS SDK Auth (version 2.17.168)
  • AWS SDK Aws-core (version 2.17.168)
  • AWS SDK Aws-query-protocol (version 2.17.168)
  • AWS SDK Aws-xml-protocol (version 2.17.168)
  • AWS SDK Http-client-spi (version 2.17.168)
  • AWS SDK Json-utils (version 2.17.168)
  • AWS SDK Metrics-spi (version 2.17.168)
  • AWS SDK Profiles (version 2.17.168)
  • AWS SDK Protocol-core (version 2.17.168)
  • AWS SDK Regions (version 2.17.168)
  • AWS SDK S3 (version 2.17.168)
  • AWS SDK Sdk-core (version 2.17.168)
  • AWS SDK Third-party-jackson-core (version 2.17.168)
  • AWS SDK Utils (version 2.17.168)
  • Reactivestreams (version 1.0.3)
  • Eventstream (version 1.0.1)
A few libraries were also updated:
  • Commons-codec (version 1.11)
  • Httpcomponents Httpclient (version 4.5.13)
  • Httpcomponents Httpcore (version 4.4.13)
  • org.reactivestreams reactive-streams New 1.0.3 MIT)
  • Slf4j (version 1.7.36)

Upgrade considerationLuciadLightspeed

The following methods have been deprecated:
  • TLcdGeoTIFFModelDecoder#getImageInputStreamFactory
  • TLcdGeoTIFFModelDecoder#setImageInputStreamFactory
  • TLcdTABRasterModelDecoder#getImageInputStreamFactory
  • TLcdTABRasterModelDecoder#setImageInputStreamFactory
  • TLcdTFWRasterModelDecoder#getImageInputStreamFactory
  • TLcdTFWRasterModelDecoder#setImageInputStreamFactory
  • TLcdRasterModelDecoder#getTileInputStreamFactory
  • TLcdRasterModelDecoder#setTileInputStreamFactory
  • TLcdDIMAPModelDecoder#getImageInputStreamFactory
  • TLcdDIMAPModelDecoder#setImageInputStreamFactory
The getters now simply return the result of their sibling #getInputStreamFactory, while the setters no longer have any effect. Please change any calls to these methods to #getInputStreamFactory or #setInputStreamFactory instead. In the next major release, these methods will be removed entirely.

Upgrade considerationLuciadLightspeed

The default quality of TLspLabelingAlgorithm, TLspOnPathLabelingAlgorithm, TLspInPathLabelingAlgorithm and TLspCurvedPathLabelingAlgorithm has been raised to 1 iso 0.5. This means that by default, no labels will be dropped because of the quality setting. When you have a layer that has a lot of labeled objects, in some cases this might result in more work being done in the background, and in slower label updates. If this is the case, you can go back to the old behavior by calling the setQuality method of those algorithms with a value of 0.5.

Upgrade considerationLuciadLightspeed

LCD-8329
The TLcdSpatialReferenceParser class is now deprecated. It is encouraged to use the TLcdEPSGReferenceParser class instead.

Upgrade considerationAdvanced Raster Connectors

LCD-12358
TLcdECWModelDecoder has been upgraded to use ERDAS ECW JP2 SDK 6.0. The names of the JAR files containing the native libraries reflect this change: libecw-5.4.*.jar is now libecw-6.0.*.jar. No other changes are necessary.

Upgrade considerationOGC Server

LCD-12725
The dependency to the SLF4J Java Util Logging implementation (slf4j-jdk14.jar) has been removed. This dependency was only used by the OGC Services sample in LuciadLightspeed. LuciadFusion Platform required the use of the Logback implementation of SLF4J (logback-classic.jar). The OGC Services sample will now also use the Logback implementation of SLF4J. The Logback implementation of SLF4J is now included in the third party sample dependencies of LuciadLightspeed.

Upgrade considerationInfrastructure Standards

LCD-12659
To ease accessing the properties of DWG objects, the DWG model decoders TLcdDWGModelDecoder and TLcdDWGModelListDecoder now by default decode extended entity types. As a result, the objects in DWG models now by default include extended entity types if present in the data. This can be reverted by calling the method clearExtendedEntityTypeSelection() on the decoder.