2022.0.13

ImprovementLuciadLightspeed

LCD-11239
The accuracy of the TLcdCoverageModelDecoder#canDecodeSource methods has been improved to only accept LuciadFusion coverage XML sources.

Bug fixLuciadLightspeed

LCD-12618
The Lightspeed map scale configuration improvements introduced in 2022.0 caused that Lightspeed layers styled with SLD were not always correctly refreshed at different scales.

Bug fixLuciadLightspeed

LCD-12598
When setting the quality setting of TLspOnPathLabelingAlgorithm (and other labeling algorithms) to 100%, it could still happen that the algorithm didn't try to place all labels.

Bug fixLuciadLightspeed

LCD-12598
TLspOnPathLabelingAlgorithm could become very slow for objects with many labels.

Bug fixLuciadLightspeed

LCD-12609
The WMS client proxy did not filter out WMS layers from the request when they declare a dimension (range) and the client dimension value was out of range for the WMS layer. In such case the WMS server responds with an invalid sample dimension value. This was specifically problematic when requesting multiple layers having the same dimension but with different non-overlapping ranges.

Bug fixLuciadLightspeed

LCD-12558
Fixed an issue that would cause OBJs containing faces without texture coordinates to not show textures at all.

Bug fixLuciadLightspeed

LCD-12624
In a Lightspeed view, labels that are anchored to an other label using a different TLspPaintRepresentation were sometimes not updated correctly when the domain object changes.

Bug fixAdvanced Raster Connectors

LCD-12481
TLcdGeospatialPDFModelDecoder#decode will now correctly parse UTF-16 Little Endian encoded metadata.

Bug fixOGC Server

LCD-12542
When using a property name filter in a WFS GetFeature request, it is no longer needed to include the unique identifier property, if defined for the requested data; this is a property annotated with a TLcdPrimaryKeyAnnotation. This fix makes sure that the response contains a valid unique identifier for each feature, regardless of any WFS property name filter.

Bug fixOGC Server

LCD-12608
When making a WMS request using a single dimension value for a layer which declares to have a range with resolution 0, the server would incorrectly return an error response with invalid sample dimension value.

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.

Bug fixDefense Symbology

LCD-12598
Military graphics with a lot of labels didn't always have all their labels placed.

Bug fixDefense Symbology

LCD-12615
Fixed a NullPointerException that could occur when painting symbols with a large number of points when strict segmentation is disabled (see TLcdDefaultAPP6AStyle.setStrictSegmentationEnabled(boolean) and TLcdDefaultMS2525bStyle.setStrictSegmentationEnabled(boolean)) and the corner smoothness is set to 0.0 (see TLcdDefaultAPP6AStyle.setCornerSmoothness(double) and TLcdDefaultMS2525bStyle.setCornerSmoothness(double).

Bug fixMaritime Standards

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

Upgrade considerationLuciadLightspeed

LF-2299
The jackson-core, jackson-databind and jackson-annotations libraries have been updated to version 2.14.0.

2022.0

2022.0.12

ImprovementDefense Symbology

LCD-12586

It is now possible to enable/disable strict segmentation of tactical graphics. Disabling strict segmentation will limit the amount of times information is repeated on a symbol. Strictly speaking, the military standards defines that some symbols need to repeat all information for each segment of 2 consecutive anchor points. This is not very useful in realistic situations.

For example, if you create a "Main Supply Route" that matches an actual route in the real world. It could be constructed out of many thousands of anchor points, forming very small segments. Having to repeat the information thousands of times is not desired as labels will overlap with each other and can cause performance issues when zooming out far enough where you are able to see the whole symbol.

This strict segmentation can be enabled/disabled with the following methods:

Bug fixLuciadLightspeed

LCD-12604
Fixed an issue where the Bill Of Materials (BOM) POM file used in Maven contained incorrect groupIds for Luciad dependencies.

Bug fixLuciadLightspeed

LCD-12601
When using the TLspPopupMenuSelectionCandidateHandler and clicking on a menu item, the corresponding object will no longer be deselected and reselected multiple times. If it was already selected it will just keep its selection state.

Bug fixLuciadLightspeed

LCD-12606
The OGC Web Client HTTP(S) connection class TLcdOWSHttpTransport no longer throws an exception when the server returns a valid but empty response.

Bug fixLuciadLightspeed

LCD-12597
The OGC Web Client HTTP(S) connection class TLcdOWSHttpTransport did not support services that redirect from HTTPS to HTTP or vice versa in combination with HTTP(S) Basic Authentication.

Bug fixDatabase Connectors

LCD-12596
Fixed an issue with the TLcdPostGISModelEncoder that caused the following warning to appear in the database log when exporting: WARNING: OGC WKB expected, EWKB provided - use GeometryFromEWKB() for this.

Bug fixDefense Symbology

LCD-12603
Fixed an issue where the zOrder of ALspStyles submitted to a TLspAPP6ASymbolStyler or TLspMS2525bSymbolStyler got ignored for tactical graphics symbols.

Bug fixDefense Symbology

LCD-12593
Resolved a performance issue in Lightspeed views that occurred when painting tactical graphics with many labels. Previously a new ILspLabelingAlgorithm was created each time a label was placed. We now reuse the ILspLabelingAlgorithm where feasible.

Bug fixDefense Symbology

LCD-12502
Fixed an issue where the NVG fill-pattern "DiagonalUpwardLine" was misspelled as "DiagonalUpLine".

Bug fixDefense Symbology

LCD-12501
Resolved an issue where NVG files containing empty text elements would cause a NullPointerException in GXY views.

2022.0.11

ImprovementInfrastructure Standards

LCD-12564
Improved conversion of large circular and elliptical objects from a CAD input dataset to OGC 3D Tiles, leading to smoother curves at the highest level of detail.

Bug fixLuciadLightspeed

LCD-12566
TLspOnPathLabelingAlgorithm didn't always clean up its terrain listeners correctly, due to a memory leak. When using a lot of different algorithm instances, this could have a noticeable effect on performance, even after removing the layer using these algorithms.

Bug fixLuciadLightspeed

LCD-12575
Fixed an issue where the relaxngDatatype library was downloaded twice and therefore found twice in the classpath in Maven-based projects built using the product POM files.

Bug fixLuciadLightspeed

LCD-12588
samples.common.dimensionalfilter.model.FilterProvider and TLcyDimensionalFilterAddOn now correctly interpolate non-double Number types. Previously, interpolation could lead to a ClassCastException.

Bug fixLuciadLightspeed

LCD-12580
TLcdGXYShapePainter now correctly edits polygons that implement ILcd3DEditablePolygon.

Bug fixLuciadLightspeed

LCD-12573
The TLcdDTEDDirectoryModelDecoder would attempt to use incorrect filenames in specific cases. This happened for DTED directory data sets where the bounding box extent would cross the 180 meridian. As example for a data extent with a location of (172.0, -44.0) and a width of 21.0 and height 116.0.

Bug fixAviation Standards

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

Bug fixMaritime Standards

LCD-12560

Fixed an erroneous warning about missing cell update files in case of cell re-issues.

This was just a warning, the actual updates were applied correctly.

Note that all available update files are attempted to be applied, regardless of missing intermediate updates.

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.

ImprovementDefense Symbology

LCD-12549

It is now possible to configure the icon type of the "Antitank Obstacles, Tetrahedrons, Dragon’s Teeth and Other Similar Obstacles" symbols in APP-6A and APP-6B. These symbols can have different icons depending on their type: "Fixed And Prefabricated", "Movable" or "Movable And Prefabricated". Unfortunately the APP-6A and APP-6B specifications do not indicate how this obstacle type should be encoded in the symbol.

The approach taken here is similar to other products: the obstacle type is encoded in the "Type Of Equipment" text modifier of the symbol. The value should either be one of the following values (casing is not important):

Obstacle Type Possible values
Fixed And Prefabricated "Fixed And Prefabricated", "F", "01"
Movable "Movable", "M", "02"
Movable And Prefabricated "Movable And Prefabricate"1, "P", "03"
1There is no "d" at the end "Movable And Prefabricate" because the max length of the "Type Of Equipment" text modifier is 24.

ImprovementInfrastructure Standards

LCD-12555
We now support IFC files larger than 1.5GB.

Bug fixLuciadLightspeed

LCD-12563
Fixed an issue where the Bill Of Materials (BOM) POM file contained incorrect groupId and/or artifactId for some dependencies.

Bug fixLuciadLightspeed

LCD-12561
When a rotated grid reference is formatted as WKT and parsed again, it's possible that the rotation changes slightly due to rounding errors. The transformation classes now take this into account, and consider the rotation as equal in that case.

Bug fixLucy (LuciadLightspeed)

LUCY-4994
TLcyWorkspaceAddOn: improved robustness when decoding a workspace containing problematic data sources that include curly braces.

Bug fixReal-time Engine

LCD-12541
TLspRadarVideoLayerBuilder: the afterglow duration set on TLspRadarVideoStyle wasn't applied correctly when the intensity was not set to 1, blips would disappear to fast.

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.09

ImprovementDatabase Connectors

The PostGIS decoder will now decode the following M-dimensional geometries to ILcdShape objects that provide access to the M coordinate:

Bug fixLuciadLightspeed

LCD-12550
Fixed potential ConcurrentModificationException when trying to take a read lock on a TLcdModelList, while a different thread is adding or removing models to this list, even when that thread correctly took a write lock.

Bug fixLuciadLightspeed

LCD-12527
In a Lightspeed view, labels that are anchored to an other label were sometimes not displayed.

2022.0.08

Bug fixLuciadLightspeed

LCD-12540
Fixed an issue in the Maven POM files which caused that the native libraries of the LWJGL library could not be resolved.

Bug fixLuciadLightspeed

LCD-12533
Fixed an issue where the Bill Of Materials (BOM) POM file was ignored during the dependency resolution of the sample maven project.

Bug fixLuciadLightspeed

LCD-12534
Fixed an issue in decoding of GLTF data related using translation-rotation-scale parameters instead of a transformation matrix. Affected data would have objects with a bad scale, which has now been corrected. This affects the 3D Tiles format, as that is based on GLTF internally.

Bug fixInfrastructure Standards

LCD-12530
TLcd3DTilesProcessorBuilder: Fixed a potential StackOverflowError when processing modeled 3D data, with very long, thin triangles.

Bug fixInfrastructure Standards

LCD-12518
TLcd3DTilesProcessorBuilder: Fixed a NullPointerException in some edge cases when converting a GLB file to 3D Tiles with a mix of repeating textures and base colors.

2022.0.07

ImprovementLuciadLightspeed

LCD-12521
A new TLcdEllipsoidUtil#computeBufferContour2D method was added with an additional parameter to control the amount of points that is used for caps and joins. This can for example be used to simplify buffer contours and improve rendering performance when you show a large amount of buffers on the view.

ImprovementInfrastructure Standards

LCD-12506, LCD-12525, LCD-12535
Fixed several bugs where converting specific cylinder objects from a CAD input dataset to OGC 3D Tiles could lead to an incorrect mesh.

Bug fixLucy (LuciadLightspeed)

LUCY-4992
TLcyToteAddOn/TableViewAddOn: improved robustness when showing data with invalid URIs.

Bug fixLuciadLightspeed

LCD-12482
TLcdLASModelDecoder 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.

2022.0.06

ImprovementLucy (LuciadLightspeed)

LUCY-4983
ALcyWorkspaceCodec: the new method decodeWorkspaceDelegateCodecIDs allows inspecting the used workspace delegate codecs of a workspace. In addition, the new protected method encodeObject allows inspecting the used workspace object codecs during the encoding of a workspace. This can help ascertain workspace compatibility.

ImprovementLuciadLightspeed

LCD-12488, LCD-12487
A Bill Of Materials (BOM) POM file is now provided with the Maven POM files in a release (build/maven/pom).

ImprovementOGC Server

LCD-12511
The WFS server could return a service exception report for a valid WFS 2.0 GetFeature request that included an OGC Filter combining an IsLike condition with other property-based conditions.

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.

Bug fixLuciadLightspeed

LCD-12504
TLcdOBJModelDecoder: fixed regression in decoding speed that was introduced in 2022.0.

Bug fixLuciadLightspeed

LCD-12451
Fixed an issue in the Maven deployment script (build/maven/deploy.xml), where it would consider some thirdparty libraries that aren't available on the central Maven repository as public.

Bug fixLuciadLightspeed

LCD-11627
An image outline style defined in an SLD raster symbolizer was not visualized in a Lightspeed view.

Bug fixLuciadLightspeed

LCD-12498
The SLD Lightspeed implementation now supports offset lines having a stroke-width smaller than 1.

Bug fixReal-time Engine

LCD-12510
When a Lightspeed view is configured on a TLcdSimulator, the simulator now uses that view's ILspView#invokeLater for updating the simulator model. Previously, it would always schedule model changes on the AWT Thread, which was not compatible with TLspFXView.

2022.0.04

ImprovementLucy (LuciadLightspeed)

LUCY-4984
Tweaked several workspace codecs so that they don't save empty chunks in the workspace. This reduces the dependency of saved workspaces on add-ons that aren't used.

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-12452
The decluttering of text modifier labels of military icon symbols is now enabled by default in Lightspeed views, bringing it in line with the default functionality of GXY views. It is now possible to configure the declutter group of military icon symbol labels by submitting a group along with a TLspAPP6ASymbolStyle/TLspMS2525bSymbolStyle in your label styler implementation.

ImprovementInfrastructure Standards

LCD-12486
Improved performance for TLcd3DTilesProcessorBuilder for reality capture meshes.

Bug fixAdvanced Raster Connectors

LCD-12481
TLcdGeospatialPDFModelDecoder#decode will now correctly parse UTF-16 encoded metadata.

Bug fixDefense Symbology

LCD-12464
Encirclement and Strong Point symbols are now painted with a dashed stroke when set to the Planned/Anticipated state.

Bug fixInfrastructure Standards

LCD-12469
Fixed an issue where face classification in a boolean operation could fail.

2022.0.03

ImprovementOGC Server

LF-2254
It is now possible to sort results by bounding box when performing a CSW GetRecords request. Sorting by bounding box will perform the sort based on the area of the bounding box. That is, bounding boxes with smaller areas will be sorted before bounding boxes with larger areas, when using the ascending sort order.

ImprovementRadar Connectors

LCD-12240
TLcdASTERIXCategory48: now supports Asterix category 48 revision 1.21. It incorporates cumulative changes since Asterix category 48 revision 1.15. As a result TLcdASTERIXLiveModelDecoder and TLcdASTERIXModelDecoder can now decode Asterix datasets in compliance with Asterix category 48 revision 1.21 and earlier revisions.

2022.0.02

ImprovementLuciadLightspeed

LCD-12457
Improved the detection of Leica Pegasus panoramic images when reading a E57 datasets. This fixes the issue where panoramic images were rotated 90° after conversion into the Luciad Panorama Format.

ImprovementLuciadLightspeed

LCD-12459
Fixed issue in TLspKML22LayerBuilder where 3D models would be incorrectly rotated on their heading property.

ImprovementLuciadLightspeed

LCD-12286
The TLcdCoverageModelDecoder method discoverDataSources now returns a list with a single data source when the source is a coverage XML file on the local file system.

Bug fixLuciadLightspeed

LCD-12237
ALcdTransformingModel: when applying a new TLcdDimensionFilter the clusters wouldn't always update accordingly.

Bug fixInfrastructure Standards

LCD-12468
Fixed an issue where IFCTrimmedCurves with senseAgreement false could lead to self-intersecting contours.

Bug fixInfrastructure Standards

LCD-12412
Fixed an issue where I-profile contours were not nicely closed.

Bug fixInfrastructure Standards

LCD-12455
Several issues were fixed:
  • A single invalid object (NaN bounds) will no longer make binz-conversion fail.
  • Sweeps no longer have inverted normals when the sweep contour is closed.
  • Sweeps no longer have a dark line at the closing point of the sweep contour.
  • Planes no longer fail during tesselation when the cause was a faulty normal.

2022.0.01

ImprovementLuciadLightspeed

The EPSG database was updated to the latest version: 10.072.

ImprovementLuciadLightspeed

LCD-12266
Added the possibility to define the precision of joins and caps for ILcdGeoBuffers. To change it, you can change the discretization parameters in the TLspShapeDiscretizationParameters and extend the TLspShapeDiscretizer to fit your needs.

ImprovementLuciadLightspeed

LCD-12320
The SLD GXY implementation now supports the optional PerpendicularOffset property on the LineSymbolizer and PolygonSymbolizer symbolizers.

ImprovementLuciadLightspeed

LCD-12429
The TLcdModelMetadata.Builder.resourceMetadata method will now try to extract dimensional information from the given ILcdResourceMetadata. It will specifically extract the temporal and vertical axis information, if it is available.

ImprovementLuciadLightspeed

LCD-12342
Improved the default rendering (using TLcdServiceLoader) for GML tree nodes in an ILcdGXYView.

ImprovementInfrastructure Standards

LCD-12375
The TLcdIFCModelDecoder is now reporting concrete progress to its registered ILcdStatusListeners.

Bug fixLuciadLightspeed

TLcdModelReferenceEncoder and TLcdModelReferenceDecoder didn't take into account geoids with different horizontal transformation parameters.

Bug fixLuciadLightspeed

EPSG:7404 could be decoded by TLcdEPSGReferenceParser, even though it was not correctly supported. Trying to decode EPSG:7404 now throws a ParseException as expected.

Bug fixLuciadLightspeed

LCD-12228
Fixed an issue with the POM files provided with the release, where the versions of dependencies in third party POM files were incorrect. The versions used where the ones that were actually used in the release instead of the versions the thirdparty libraries depended on.

Bug fixLuciadLightspeed

Updated the versions of Proguard and the exec-maven-plugin used in the Maven documentation articles. These versions enable support for JDK 17.

Bug fixLuciadLightspeed

LCD-12369
Updated the version of the exec-maven-plugin to 3.1.0 in the sample Maven project. This version enabled support for JDK 17 on Windows.

Bug fixLuciadLightspeed

LCD-12347
BlackLimeLookAndFeel: fixed an issue when using Java 17, resulting in incorrect text colors in a JXTreeTable.

Bug fixLuciadLightspeed

LCD-12453
TLcdModelReferenceDecoder could throw an IllegalArgumentException instead of an IOException.

Bug fixLuciadLightspeed

LCD-12434
Using TLcdWKTReferenceParser with certain compound references could modify the references that are returned by TLcdGeoidGeodeticDatumFactory.

Bug fixLuciadLightspeed

LCD-12234
TLspIconStyle: when the application was switched to another screen with different DPI, an endless repaint loop could occur when icons were made invisible.

Bug fixLuciadLightspeed

LCD-12433
The GeoTIFF decoder includes fixes for creating references with a vertical datum when defined within the GeoTIFF tags. In some cases the vertical datum was not applied to the reference.
Note that a vertical datum is only applied when the GeoTIFF decoder is configured with com.luciad.format.raster.TLcdGeoTIFFModelDecoder.setSupportGeoidDatums.

Bug fixLuciadLightspeed

LCD-12447
The GeoTIFF decoder now also applies the GDAL_NODATA tag when using the legacy ILcdRaster API. The no data tag was already used when working with the imaging API.

Bug fixOGC Server

LCD-12408
When performing a WFS GetFeature request with property name filtering, the GeoJSON output still contained all property names, where the filtered properties had a null value. This has been fixed: the filtered properties are no longer present in the json response.

Bug fixInfrastructure Standards

LCD-12371
Fixed a bug where the optional presentation information of the material was not processed while decoding the IFC Geometry Model.

Bug fixInfrastructure Standards

LCD-12407
TLcd3DTilesProcessorBuilder: Now uses absolute file paths for caching textures. This fixes an issue that in some rare cases, textures would be cached twice with a different key.

Bug fixInfrastructure Standards

LCD-12356
TLcd3DTilesProcessorBuilder: Fixed an issue that would bad UV coordinates to be generated in trimmed tiles. The effects of this bug were blurriness in some higher level tiles, and a inflated output data size. With this fix, output datasets for reality captures should be smaller and the simplified levels should be slightly sharper.

Upgrade considerationLuciadLightspeed

The TLcdGeoJsonModelEncoder will now detect a primary key that has been declared on a supertype of a TLcdDataType. The primary key property is used as id value of the GeoJson feature, and is omitted from the properties list.

      {
        "type" : "Feature",
        "id" : "0001",
        "geometry" : { ... },
        "properties" : {
          "nonPrimaryKeyProperty" : "someValue",
          ...
        }
      }
    

Upgrade considerationInfrastructure Standards

Due to changes in how the GeoJson encoder handles primary keys of objects, the GeoJson output of the BinzConverter will now have the FeatureID encoded as the id member of the features, instead of having it as a property.


      {
        "type" : "Feature",
        "id" : 0,
        "geometry" : { ... },
        "properties" : { ... }
      }
    

When reading GeoJson files from Binz datasets, you can use this snippet to get the primary key property for both new and old GeoJson files:


      ILcdModel model = new TLcdGeoJsonModelDecoder().decode("path\\to\\features.geojson");
      TLcdDataType dt = ((ILcdDataObject) model.elements().nextElement()).getDataType(); // assuming the model has at least one element
      TLcdPrimaryKeyAnnotation annotation = dt.getAnnotation(TLcdPrimaryKeyAnnotation.class);
      TLcdDataProperty property = annotation != null ? annotation.getProperty() : dt.getProperty("FeatureID");
    

2022.0

New featureInfrastructure Standards

Added support for the IFC data format. The IFC format is an open international standard for Building Information Model (BIM) data covering entities such as buildings or facilities.

For more details, see the IFC entry in the Data Formats documentation section

LuciadRIA showing a sample IFC file
LuciadRIA showing a sample IFC file

New featureTiling Engine

The TLfnPointCloudPreprocessor now supports Draco compression. You can use this new functionality through the API: builder.pointCloudCompression(ELcdOGC3DTilesMeshCompressionType.DRACO). It is also available in LuciadFusion Studio when you create an OGC3DTiles service from point cloud data, and in the PointCloudPreprocessorTool.

The samples.fusion.pointcloud.PointCloudPreprocessorTool also supports Draco compression. It can be activated through a "--compression=draco" program argument.

ImprovementLucy (LuciadLightspeed)

TLcyLspMapAddOn: the scale selection is now animated, which improves accuracy and the user's context.

ImprovementLucy (LuciadLightspeed)

LUCY-4581
The error message when trying to connect to an offline URL-based data source now includes the reason instead of saying "Don't know how to decode it".

ImprovementLuciadLightspeed

LCD-2839, LCD-8405
ILcdDataObject objects that have been decoded from XML no longer return the default attribute value in the getValue method if the attribute value is missing. Instead, the default value can be retrieved from the corresponding TLcdDataProperty. This improves consistency when encoding these objects again.

ImprovementLucy (LuciadLightspeed)

Lucy can now decode and visualize IFC data on a Lightspeed view. This functionality is provided by TLcyIFCAddOn and TLcyLspIFCFormatAddOn. Because IFC is restructured and rendered into meshed data on-the-fly, it is recommended to only use this functionality for small IFC datasets. For large datasets, it is recommend to convert the data to OGC 3D Tiles using LuciadLightspeed or LuciadFusion.

ImprovementLuciadLightspeed

LCD-12265
ILcdModelReferenceDecoder has a new method findAndDecodeModelReference. Apart from decoding the model reference like its sibling method decodeModelReference, this new method also provides the source file from which the reference was decoded, when it exists and is known. An implementation of this method has been added to all ILcdModelReferenceDecoder classes which are provided in the API, or as an LcdService.

ImprovementLuciadLightspeed

LCD-6306
A new WMS Client sample has been added that illustrates the use of ECDIS data through a WMS in a Lightspeed view: samples.wms.client.ecdis.lightspeed.MainPanel.

ImprovementLuciadLightspeed

The new method ILcdInputStreamFactory.canCreateInputStream checks whether a factory supports creating an input stream for a given source name. This makes it possible to ignore factories that have no chance of succeeding when alternatives are available, for instance in the new TLcdCompositeInputStreamFactory. A default implementation is available in the interface that always returns true.

ImprovementLuciadLightspeed

Some exotic model implementations such as TLcd2DRegularTiledBoundsIndexedModel and their related API have been deprecated, because they are only used to support deprecated formats.

ImprovementLuciadLightspeed

LCD-10029
You can now easily calculate the area of a complex polygon using the following new methods:
  • TLcdEllipsoidUtil.geodesicArea(ILcdShape, ILcdEllipsoid)
  • TLcdSphereUtil.geodesicArea(ILcdShape, double)
  • TLcdCartesian.area(ILcdShape)

ImprovementLuciadLightspeed

ImprovementLuciadLightspeed

The following core API classes now implement ILcdCurve: The following core API classes now implement ILcdRing:

ImprovementLuciadLightspeed

The WMS client now supports server-side map rotations if you are using non-tiled visualization in GXY views with a projection supported by the WMS server. You can enable this capability with the boolean System property com.luciad.wms.client.serverMapRotation. If you set it to true, map rotations are propagated to the WMS server through the custom GetMap request parameter angle. When used in combination with LuciadFusion or other WMS servers supporting this parameter, it ensures that labels on rotated maps are always upright, and that oriented icons still have their intended orientation.

ImprovementLuciadLightspeed

The WMS client can now parse contact information from the GetCapabilities response. This information gets added to the ALcdWMSServiceMetaData

ImprovementLuciadLightspeed

LCD-12187
TLcdGML2ModelEncoder and TLcdGML31ModelEncoder's generated feature collection element is now in the _FeatureCollection substitution group. This improves embedding feature collections into other data models, such as WMTS feature info responses.

ImprovementLuciadLightspeed

LCD-11854
For scale based stylers and SLD stylers, it is now possible to control the styler's scale level independently of the view scale by implementing a custom ILspMapScaleProvider. The map scale provider can be added to a layer with TLspLayer#setMapScaleProvider, or it can be added to other layers by overriding ILspLayer#getMapScaleProvider. See the map scale provider how-to article for more info.

ImprovementLuciadLightspeed

The SLD implementation now supports adding a box around a label. Using an SLD text symbolizer, you can configure the fill and stroke of the box, as well as the desired padding between the box and the label. The new article How to draw a box around labels illustrates the addition of a label box with an example.

ImprovementLuciadLightspeed

Added extra methods to TLcdGXYPolylineLabelPainter making it possible to specify the color and line width of the frame surrounding the labels.

ImprovementLucy (LuciadLightspeed)

LUCY-4888
TLcyCSVAddOn, TLcyLspCSVFormatAddOn: The CSV file import dialog now has an option to specify the DateTime format pattern that is used in the file.

ImprovementLuciadLightspeed

LCD-11314
The TLcdCSVModelDecoder now creates models that implement ILcdMultiDimensionalModel, when at least one of the columns is specified to contain values of type TLcdCSVDataSource.ColumnType.DATE_TIME. The resulting model contains one time dimension for each column of that type.

ImprovementLuciadLightspeed

LCD-12039
Introduced a new method named TLspViewNavigationUtil#animatedZoom, which performs an animated zoom to a target map scale on a Lightspeed view.

ImprovementLuciadLightspeed

LCD-12088
ILspView implementations now fire property change events for the background and paintingOrder properties.

ImprovementLuciadLightspeed

TLcdJPEG2000ModelDecoder: the decoder can now parse the model reference from embedded GMLJP2 in the file. The decoder supports versions 1.0, 2.0 and 2.1 of the GMLJP2 specification, and will only parse the model reference, other elements will be ignored but are accessible via the TLcdJPEG2000ModelDescriptor.

ImprovementLuciadLightspeed

LCD-10677
Calling ILcdModel#dispose() on the output of TLcdJPEG2000ModelDecoder now closes the JPEG2000 file.

ImprovementLuciadLightspeed

LCD-8189
The JPEG2000 model decoder now decodes geo-references using the RPC00B coefficients without requiring a world file. When no geo-reference data is available as GeoTIFF tags the decoder looks for the existence of the optional _rpc.txt which contains the RPC00B coefficients.

ImprovementLuciadLightspeed

LCD-8903
JPEG2000's native library now requires GLIBC 2.3.4, down from 2.14. This improves compatibility with Red Hat Enterprise Linux 6.

ImprovementLuciadLightspeed

The TLcdJPEG2000ModelDecoder and TLcdJPIPModelDecoder have been updated to handle monochrome, RGB and multi band images. The number of bands that can be decoded is unlimited with the limitation that each band consists of up to 16 bits. These improvements are only available via the imaging API. Please refer to the class javadoc for more information.

ImprovementLuciadLightspeed

The TLcdJPEG2000ModelDecoder and TLcdJPIPModelDecoder have been adapted for integration with the new imaging API. They now produce models with domain objects that extend ALcdImage. Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more information.

ImprovementLuciadLightspeed

LCD-4415
The JPIP model decoder now verifies that the provided source name points to a valid JPIP server in its canDecode method. Previously it would only verify that the source name is a valid URI. You can get the old behavior by calling setQueryServerOnCanDecode(false).

ImprovementLuciadLightspeed

LCD-4332
The JPEG2000 and JPIP model decoders now document that image components may be scaled. The model descriptors also expose the necessary information to allow computing the original values in the image.

ImprovementLuciadLightspeed

LCD-4252
The JPEG2000 performance for tiled data has improved.

ImprovementLuciadLightspeed

LCD-4241
The TLcdJPEG2000ModelDecoder can now also decode the raster bounds from a j2w files.

ImprovementLuciadLightspeed

TLcdJPEG2000ModelDecoder now has a default model reference decoder.

ImprovementLuciadLightspeed

Closing the connection of a JPIP model explicitly while the model is still being used is handled more gracefully.

ImprovementLuciadLightspeed

The TLcdJPEG2000ModelDescriptor now exposes some additional metadata such as embedded XML. This metadata is also available on the TLcdJPIPModelDescriptor.

ImprovementLuciadLightspeed

Added the com.luciad.format.raster.TLcdJPIPModelDecoder which supports decoding images retrieved through the JPEG2000 Interactive Protocol (JPIP).

ImprovementLuciadLightspeed

LMAP-4075
The JPEG2000 native decoder pool size has been increased to 10, which is better suited for the most common scenarios (several files of less than 10 GBytes, instead of 1-2 huge files).

ImprovementLuciadLightspeed

The TLcdJPEG2000ModelDecoder did not correctly decode images having multiple color channels with a color depth other than 8 bit. This limitation has been removed.

ImprovementLuciadLightspeed

TLcdJPEG2000ModelDecoder now ignores a fourth channel if it is not an alpha channel.

ImprovementLuciadLightspeed

The JPEG2000 format is now also supported on 64-bits SPARC Solaris.

ImprovementLuciadLightspeed

The JPEG2000 format is now also supported on 64-bits Windows.

ImprovementLuciadLightspeed

The JPEG2000 format is now also supported on 64-bits Linux.

ImprovementLuciadLightspeed

The native JPEG2000 library has been updated to the latest version. Please make sure you are using the proper versions of the native libraries, corresponding to the LuciadMap jars.

ImprovementLuciadLightspeed

TLcdJPEG2000ModelEncoder now checks if the user-requested number of DWT levels does not exceed an acceptable limit (dependent on the tile size).

ImprovementLuciadLightspeed

TLcdJPEG2000ModelDecoder now also accepts "file:" URLs.

ImprovementLuciadLightspeed

TLcdJPEG2000ModelDecoder now has a property maximumResidualTiePointError to control when to reject rasters whose tie points do not precisely define an affine transformation (throwing an IOException instead).

ImprovementLuciadLightspeed

The new TLcdJPEG2000ModelEncoder provides functionality to encode raster models as georeferenced JPEG2000 images.

ImprovementOGC Server

LCD-11939
The OGC server sample now integrates with Spring Boot. It takes advantage of Java Servlet 3.0 annotations, which makes it much easier to set up. Additionally, a new article How to use Spring Boot with the OGC Web Server Suite explains how to integrate your own server created with the OGC Web Server Suite in a Spring Boot application.

ImprovementOGC Server

The WMS and WMTS server now support GetFeatureInfo requests with text/html or text/xml as output format. When setting the output format to text/xml, the generated XML is based on the WMTS GetFeatureInfo XSD, which can be found here.

ImprovementOGC Server

LF-2159

It is now possible to implement request-based SLD rendering customizations for a LuciadFusion product with an SLD style. To accomplish this, a new method has been added to the WMS API: ALcdSLDWMSGXYLayerFactory#createGXYLayer(ILcdModel aModel, ALcdWMSLayer aWMSLayer, TLcdSLDFeatureTypeStyle[] aStyle, TLcdWMSRequestContext aRequestContext) Based on the request stored in the TLcdWMSRequestContext changes can be applied to the TLcdSLDFeatureTypeStyle[] to allow for SLD rendering customizations.

It is now also possible to configure feature type styles on the server side. This is done by plugging in a custom implementation of a ILcdWMSSLDFeatureTypeStyleProvider in the ALcdOGCWMSCommandDispatcherFactory by overriding the method ALcdOGCWMSCommandDispatcherFactory#createSLDFeatureTypeStyleProvider(ServletConfig aServletConfig).

ImprovementOGC Server

The WMS server now supports map rotations: by means of a new custom GetMap request parameter angle, WMS clients can indicate the map rotation in degrees, measured clockwise around the center of the map.

ImprovementOGC Server

It is now possible to configure access constraints and contact information of the service metadata of the WMS server capabilities. This information can be configured using the ALcdWMSServiceMetaData.

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.

ImprovementDefense Symbology

LCD-12336

The forced color style is now also applied to tactical graphic symbols instead of only to icon symbols. The forced color can be inspected/edited with the following methods:

  • ILcdMS2525bStyle.setForcedColor
  • ILcdMS2525bStyle.getForcedColor
  • ILcdAPP6AStyle.setForcedColor
  • ILcdAPP6AStyle.getForcedColor

ImprovementDefense Symbology

LCD-12140, LCD-10328

It is now possible to override the default line style of the outer frame of an icon. To support this, the following methods are added to the interfaces ILcdMS2525bStyle and ILcdAPP6AStyle:

  • ILcdMS2525bStyle.setForcedFrameLineStyle
  • ILcdMS2525bStyle.getForcedFrameLineStyle
  • ILcdAPP6AStyle.setForcedFrameLineStyle
  • ILcdAPP6AStyle.getForcedFrameLineStyle

These new methods are implemented by the existing API classes TLcdDefaultMS2525bStyle and TLcdDefaultAPP6AStyle.

ImprovementInfrastructure Standards

The Binz decoder sample now has DRACO compression enabled by default when converting a Binz dataset to OGC 3D Tiles.

ImprovementInfrastructure Standards

It is now possible to convert multiple Binz datasets into a single OGC 3D Tiles dataset by using an index file.
For more information, refer to the how to article in the Binz documentation section.

ImprovementRadar Connectors

The ASTERIX API class TLcdASTERIXTrajectory now implements ILcdCurve.

Bug fixLuciadLightspeed

LCD-12265
The TLcdOBJModelDecoder now includes the MTL and referenced texture files in the supporting sources of its models' TLcdModelMetadata.

Bug fixLuciadLightspeed

LCD-12265
The TLcdIGRFModelDecoder and TLcdWMMModelDecoder now set the correct source names on their model descriptor and TLcdModelMetadata.

Bug fixLuciadLightspeed

LCD-12265
The TLcdMIFModelDecoder now includes the MID file in the supporting sources of its models' TLcdModelMetadata.

Bug fixLuciadLightspeed

LCD-12265
The TLcdBILModelDecoder now includes the BIL and HDR files in the supporting sources of its models' TLcdModelMetadata.

Bug fixLuciadLightspeed

LCD-12265
When a model reference is decoded from an external model reference file, the following model decoders now include this reference file in the supporting sources of the TLcdModelMetadata. For example, the model reference file can be a PRJ file that lives next to the data source, having the same file name or "directory.prj".

Bug fixLuciadLightspeed

LCD-12258
TLcdSHPModelDecoder now sets the correct data category and support files in the TLcdModelMetadata of its models.

Bug fixLuciadLightspeed

LCD-12254
TLcdSHPModelEncoder now also uses its output stream factory for encoding the model reference.

Bug fixLuciadLightspeed

LCD-12250

Bug fixLuciadLightspeed

LCD-12191
TLcdGML31ModelEncoder's generated feature collection type now extends AbstractFeatureCollectionType. The behavior for TLcdGML32ModelEncoder (which deprecated built-in feature collection types) remains unchanged.

Bug fixLuciadLightspeed

The TLcdCSVModelDecoder now also parses the time component of a date by default, using a SimpleDateFormat with pattern "yyyy-MM-dd HH:mm:ssXXX" for columns of type TLcdCSVDataSource.ColumnType.DATE_TIME. This DateFormat can be modified with TLcdCSVModelDecoder#setDateFormat.

Bug fixLuciadLightspeed

Fixed an issue with the sample maven project where the proguard obfuscation would fail on Windows, when executing mvn package, because the command was too long.

Bug fixLuciadLightspeed

Fixed Windows compatibility issues with the sample Maven project script build/maven/setup-sample-project.xml.

Bug fixLuciadLightspeed

LCD-11185
TLcdJPEG2000ModelDecoder: fixed a potential NullPointerException when reading the TIFF IFD from a JPEG 2000 file.

Bug fixLuciadLightspeed

LCD-11036
TLcdJPEG2000ModelDecoder: in some cases, attempting to decode a non-georeferenced JPEG2000 file would result in a NullPointerException rather than the expected IOException.

Bug fixLuciadLightspeed

LCD-8840
TLcdJPIPModelDecoder will now start a new session if the JPIP server returns a HTTP 503 response (invalid channel ID).

Bug fixLuciadLightspeed

LCD-8841
Fixed an issue with TLcdJPIPModelDecoder's cache management. This resulted in gray tiles being rendered.

Bug fixLuciadLightspeed

LCD-8824
TLcdJPEG2000ModelDecoder now respects the sampling mode (point vs. area-sampled) defined in a geoJP2 header.

Bug fixLuciadLightspeed

LCD-8496
Increased maximum allowed quality of TLcdJPEG2000ModelEncoder from 1.0 to 8.0, to allow encoding of higher-quality JPEG2000 files.

Bug fixLuciadLightspeed

Fixed an issue in TLcdJPEG2000ModelDecoder where, in some cases, alpha channels were not properly detected.

Bug fixLuciadLightspeed

LCD-7914
Fixed an issue in TLcdJPIPModelDecoder where RGB data with 16 bits per component could not be decoded.

Bug fixLuciadLightspeed

LCD-7893
Resolved an issue where reading simultaneously from many different JPEG2000 files could result in a deadlock.

Bug fixLuciadLightspeed

The JPEG2000 decoder canDecode method could return false for some absolute paths on windows.

Bug fixLuciadLightspeed

LCD-6500
The JPEG2000 and JPIP data decoders produced an ALcdMultilevelImage/ILcdMultilevelRaster with 1 level too few. The least detailed level was missing. This negatively affected the performance for large files when zoomed out.

Bug fixLuciadLightspeed

LCD-6495
The JPEG2000 decoder could not decode paths longer than 260 characters on windows.

Bug fixLuciadLightspeed

LCD-6354
TLcdJPEG2000ModelDecoder sometimes created ALcdImage's with incorrect semantics: there could be an alpha band that is not actually available.

Bug fixLuciadLightspeed

LCD-6010
A JPIP model could return incorrect values when using its ILcdRaster.retrieveValue method from multiple threads.

Bug fixLuciadLightspeed

LCD-5773
Fixed possible deadlock when using ILcdRaster.retrieveValue on a JPIP raster that is also being painted in a Lightspeed view.

Bug fixLuciadLightspeed

LCD-4400
The JPEG2000 decoder could not handle file names with non-ASCII characters on Windows.

Bug fixLuciadLightspeed

LCD-4257
Fixed a bug in the decoding of 16-bit JPIP data.

Bug fixLuciadLightspeed

LCD-3550
Fixed a concurrency issue in the JPIP native library which could result in an application crash on some systems.

Bug fixLuciadLightspeed

LCD-3537
Fixed a memory leak in JPIP models. This regression was introduced by the earlier fix LCD-3492 in the LuciadMap core library.

Bug fixLuciadLightspeed

LCD-3502
The connection of a JPIP model can now be closed explicitly. You can find details on how to do this in the TLcdJPIPModelDecoder javadoc.

Bug fixLuciadLightspeed

LCD-3481
The JPEG2000 and JPIP decoders could not decode monochromatic 16-bit data.

Bug fixLuciadLightspeed

LCD-2627
The JPEG2000 decoder allocated buffers that were larger then necessary.

Bug fixLuciadLightspeed

LMAP-5974
Some raster files could not be rectified properly during decoding. This has been fixed.

Bug fixLuciadLightspeed

LMAP-5479, LCD-94
The positioning of JPEG2000 rasters based on JPW files with arbitrary rotations has been corrected. Additionally, sheared rasters now supported.

Bug fixLuciadLightspeed

The name of the system property controlling the JPEG2000 native decoder pool size has been changed from JPEG2000_POOL_SIZE to jpeg2000.pool.size, in line with the usual naming conventions. The old system property name is still used as a fallback, for backwards compatibility.

Bug fixLuciadLightspeed

Attempting to load a non-existing file no longer crashes the application.

Bug fixLuciadLightspeed

LMAP-3932
Loading a corrupted JPEG2000 file no longer crashes the entire application.

Bug fixLuciadLightspeed

LMAP-3850
TLcdJPEG2000ModelDecoder was allocating large amounts of native memory. On 32 bit platforms this was sometimes exceeding the virtual memory space of the process, leading to a crash. LuciadMap now uses a pool of "connections" to the native JPEG2000 library, limiting the amount of memory used. The size of this pool can modified by setting the JPEG2000_POOL_SIZE system property (the default value is 2).

Bug fixLuciadLightspeed

The Linux 64-bit version of the libLcdJPEG2000.so depended on an older version of the standard C++ library (libstc++.so.5). The library is now linked against libstdc++.so.6.

Bug fixLuciadLightspeed

TLcdJPEG2000ModelDecoder now correctly supports JPEG2000 images with color maps.

Bug fixAdvanced Raster Connectors

LCD-12265
The TLcdPegasusModelDecoder now includes the 'Internal Orientation.csv' and referenced image files in the supporting sources of its models' TLcdModelMetadata.

Bug fixAdvanced Raster Connectors

LCD-12265
TLcdGeoSPOTModelDecoder now adds the supporting sources and data series to the TLcdModelMetadata of its decoded models.
  • When decoding a REP file, the model metadata contains the BIL, HDR and RSC files as supporting sources.
  • When decoding a DSC file, the model metadata contains every referenced REP subset as data series, each containing their respective BIL, HDR and RSC as supporting sources.

Bug fixDefense Standards

LCD-12265
TLcdBCIRasterModelDecoder now adds the supporting sources to the TLcdModelMetadata of its decoded models. These supporting sources are all the individual QDR files, as well as the vqtable file, if it exists.

Bug fixMaritime Standards

LCD-9921
The S-57 and S-63 decoders can now decode catalog files from URL's or with custom input stream factories. Multi-Catalogues (MULTICATALOG.031) are not supported, because they require specific file system operations like listing directory contents.

Upgrade considerationLuciadLightspeed

Third party libraries used in the samples have been moved to the samples/lib/thirdparty directory.

Upgrade considerationLuciadLightspeed

The two modules lcd_jpeg2000_decoder and lcd_jpeg2000_encoder have been merged into one module lcd_jpeg2000, which contains the JPEG2000 model decoder and encoder.

Upgrade considerationLuciadLightspeed

The com.luciad.format.raster package is no longer split between multiple jars. This means that the following classes have been moved to their own sub package:

Class New Package
TLcdJPEG2000AssociationBox com.luciad.format.jpeg2000
TLcdJPEG2000Box com.luciad.format.jpeg2000
TLcdJPEG2000ImageDecoder com.luciad.format.jpeg2000
TLcdJPEG2000ModelDecoder com.luciad.format.jpeg2000
TLcdJPEG2000ModelDescriptor com.luciad.format.jpeg2000
TLcdJPIPModelDecoder com.luciad.format.jpeg2000
TLcdJPIPModelDescriptor com.luciad.format.jpeg2000
TLcdJPEG2000ModelEncoder com.luciad.format.jpeg2000
TLcdBCIRasterModelDecoder com.luciad.format.bci
TLcdBCIRasterModelDescriptor com.luciad.format.bci
TLcdBCITileDecoder com.luciad.format.bci
TLcdDIMAPModelDecoder com.luciad.format.dimap
TLcdDIMAPModelDescriptor com.luciad.format.dimap
TLcdECWConfiguration com.luciad.format.ecw
TLcdECWImageDecoder com.luciad.format.ecw
TLcdECWModelDecoder com.luciad.format.ecw
TLcdECWModelDescriptor com.luciad.format.ecw
TLcdGeoSPOTSubsetDescriptor com.luciad.format.geospot
TLcdGeoSPOTSceneDescriptor com.luciad.format.geospot
TLcdGeoSPOTRasterDescriptor com.luciad.format.geospot
TLcdGeoSPOTRaster com.luciad.format.geospot
TLcdGeoSPOTModelDescriptor com.luciad.format.geospot
TLcdGeoSPOTModelDecoder com.luciad.format.geospot
TLcdMrSIDImageDecoder com.luciad.format.mrsid
TLcdMrSIDModelDecoder com.luciad.format.mrsid
TLcdMrSIDModelDescriptor com.luciad.format.mrsid
TLcdCADRGBoundaryRectangleDescriptor com.luciad.format.cadrg
TLcdCADRGDirectoryModelDecoder com.luciad.format.cadrg
TLcdCADRGFrameDescriptor com.luciad.format.cadrg
TLcdCADRGImageDecoder com.luciad.format.cadrg
TLcdCADRGModelDecoder com.luciad.format.cadrg
TLcdCADRGModelDescriptor com.luciad.format.cadrg
TLcdCADRGMultilevelRasterModelDescriptor com.luciad.format.cadrg
TLcdCADRGRaster com.luciad.format.cadrg
TLcdCADRGTile com.luciad.format.cadrg
TLcdECRGMediaMetadata com.luciad.format.ecrg
TLcdECRGModelDecoder com.luciad.format.ecrg
TLcdECRGModelDescriptor com.luciad.format.ecrg
TLcdECRGMultilevelRasterModelDescriptor com.luciad.format.ecrg
TLcdECRGTile com.luciad.format.ecrg
ELcdNITFBandRepresentation com.luciad.format.nitf
TLcdNITFGXYLayerFactory com.luciad.format.nitf
TLcdNITFModelDecoder com.luciad.format.nitf
TLcdNITFModelDescriptor com.luciad.format.nitf
TLcdNITFTextSegment com.luciad.format.nitf
TLcdNITFUncompressedImageDecoder com.luciad.format.nitf
TLspNITFLayerFactory com.luciad.format.nitf
TLcdSwissDHMMatrixModelDecoder com.luciad.format.swissdhm
TLcdSwissDHMMatrixModelDescriptor com.luciad.format.swissdhm
TLcdUSRPAccuracyDescriptor com.luciad.format.usrp
TLcdUSRPDatasetModelDescriptor com.luciad.format.usrp
TLcdUSRPLegend com.luciad.format.usrp
TLcdUSRPModelDecoder com.luciad.format.usrp
TLcdUSRPModelDescriptor com.luciad.format.usrp
TLcdUSRPTile com.luciad.format.usrp
TLcdUSRPZoneDescriptor com.luciad.format.usrp

If you encounter any compile errors due to these changes, simply update the relevant import statement.

Upgrade considerationLuciadLightspeed

The samples now depend on the HikariCP third-party library. It is used to illustrate how the database model decoders can use a database connection pooling framework.

Upgrade considerationLuciadLightspeed

The SQLiteJ library has been updated to version 3.36.0.lcd-2 to improve compatibility with Hibernate 5.

Upgrade considerationLuciadLightspeed

Support for 32-bit Windows will be phased out. Starting with LWJGL, new or upgraded native libraries will no longer include 32-bit versions.

Upgrade considerationLuciadLightspeed

LCD-12054
The LWJGL Java binding for the OpenGL and OpenCL APIs has been updated to version 3.3.1. For Linux, the glibc (GNU C Library) minimum version has been raised to 2.27.

Upgrade considerationLuciadLightspeed

The third-party library dependencies Apache HttpClient, HttpClient Cache and HttpMime have been updated from version 4.5.6 to 4.5.13. Their dependencies have also been updated accordingly: Apache HttpCore from version 4.4.10 to 4.4.13, Apache Commons Codec from version 1.10 to 1.11.

Upgrade considerationLuciadLightspeed

The ILcdPolyline constructor parameter of TLcdSHPPolylineZ now also needs to be an instance of ILcdCurve.

Upgrade considerationLuciadLightspeed

By default, TLspLonLatGridLayerBuilder's layers now generate lines that use the same ILcdGeodeticDatum as the world reference of the view, even when the world reference of the view changes. It always used the WGS 84 datum before this change. It is still possible to use a fixed geodetic datum by using the TLspLonLatGridLayerBuilder#createModel method that takes an ILcdGeodeticDatum as argument.

Upgrade considerationDatabase Connectors

Upgraded the PostgreSQL JDBC driver to version 42.3.6.

Upgrade considerationOGC Server

To allow for greater extensibility, the signature of the method ILcdWMSGetLegendGraphicRequestEncoder#encode(ALcdWMSLayer,ALcdSLDLayer,TLcdSLDStyledLayerDescriptor,String,String,float,int,int,OutputStream,TLcdWMSRequestContext) has been changed into #encode(TLcdWMSGetLegendGraphicRequestContext,TLcdWMSRequestContext,OutputStream). TLcdWMSGetLegendGraphicRequestContext gives access to the original method arguments and a number of additional arguments.

The change impacts WMS implementations that use an implementation of ILcdWMSGetLegendGraphicRequestEncoder.

Upgrade considerationOGC Server

LCD-12142
The version of Ehcache was updated from 3.2.0 to 3.10.0 to improve compatibility with Java 17.

Upgrade considerationOGC Server

The createFilteredModel(ILcdModel aSourceModel, TLcdWFSGetFeatureConstraints aConstraints) method of ILcdWFSFilteredModelFactory now imposes new conditions on the elements in the model. Any ILcdPolyline or ILcdPolygon model elements now also need to implement ILcdCurve or ILcdRing, respectively.

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)

Upgrade considerationDefense Symbology

LCD-11404, LCD-12138
The following Military Symbology classes have been removed from the API. These API classes have been deprecated for more than a decade and have not been maintained since.

Upgrade considerationDefense Symbology

LCD-4341, LCD-8814

The paint representations used for the direction of movement arrows have been removed from the API.

  • TLspMS2525bLayerBuilder.ARROW_PAINT_REPRESENTATION
  • TLspAPP6ALayerBuilder.ARROW_PAINT_REPRESENTATION

The direction of movement arrows are now painted in the TLspPaintRepresentation.BODY paint representation.

If you had a custom TLspPaintingOrder handling the ARROW_PAINT_REPRESENTATION, you can replace it with a default TLspPaintingOrder.