2024.0.10

Bug fixLuciadLightspeed

LCD-13597
Fixed a problem where GML files containing curves with different references would be converted incorrectly during encoding.

Bug fixLuciadLightspeed

LCD-13594
Fixed a problem where GML files containing arc-by-center-points with different references would be converted incorrectly during decoding.

Bug fixLucy (LuciadLightspeed)

LUCY-5070
TLcyLspMapAddOn: fixed an issue where the visibility of the terrain exaggeration slider could be incorrect after loading a workspace.

Bug fixOGC Server

LCD-13592
The WFS server returned duplicate identifiers for GetFeature requests with a property name filter in case the source data did not have an explicit identifier (such as SHP files).

Bug fixInfrastructure Standards

LF-2651
Fixed an issue where the TLcdRevitModelDecoder did not properly mark the Revit files referenced by a '.rvt.index' dataset as support files.

Bug fixInfrastructure Standards

LCD-13596
The display name of an ILcdModel returned by the TLcdRevitModelDecoder no longer contains the '.rvt' extension for '.rvt.index' datasets.

2024.0.09

Bug fixLuciadLightspeed

LCD-10234
The TLcdGeoPackageFeatureDatabaseModelEncoder now allows to add extensions to existing files.

Bug fixLuciadLightspeed

LCD-13575
Fixed an issue with reference handling in TLcdGeoTIFFModelDecoder when using GeoTIFF tags. A user defined reference with Mercator projection ignored the parameter ProjNatOriginLatGeoKey.

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.

Bug fixDefense Symbology

LCD-13567
Resolved an issue where the icon of the "Biologically Contaminated Area", "Chemically Contaminated Area" and "Nuclear Contaminated Area" symbols was not placed inside of TLcdNVG15ArcBand and TLcdNVG20ArcBand objects.

Upgrade considerationInfrastructure Standards

LCD-13551
Updated the libdwg library to version 24.8+8, to be able to fix issue LCD-13551.

2024.0.08

ImprovementOGC Server

LCD-13516
It is now possible to configure WMS and WMTS services to produce HTTP 500 Internal Error responses when any exception occurs during painting. You can enable this behavior by setting the system property com.luciad.fusion.wms.server.errorResponseOnPaintException to true.

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

ImprovementDefense Symbology

LCD-13485
Updates some of the javadoc of TLcdEditableMS2525bObject and TLcdEditableAPP6AObject to clearly mention the different supported SIDC code formats.

ImprovementInfrastructure Standards

LCD-13551
Added support for DWG REGION entities. They will be decoded as TLcdDWGSurface objects.

ImprovementInfrastructure Standards

LCD-13545
Some classes of the lcd_revit.jar have been moved into a new lcd_binz_connector.jar.

Bug fixLuciadLightspeed

LCD-13559, LCD-13560
Fixed the TLcdWKTReferenceFormatter and TLcdWKTReferenceParser for Cartesian references that don't use meter as distance unit.
Additionally, the parser will now use the conversion parameter that is provided in the WKT string to transform the unit to meter, even if the unit was not previously known or registered.

Bug fixDefense Symbology

LCD-13537
Resolved an issue where the speed leader icon was painted as an arrow, instead of as a line.

Bug fixDefense Symbology

LCD-13550
Resolved a concurrency issue with the TLcdAPP6AObjectCustomizer and the TLcdMS2525bObjectCustomizer, that could result in a NullPointerException being thrown when quickly changing combobox values multiple times one after another.

Bug fixInfrastructure Standards

LCD-13529
TLcd3DTilesProcessorBuilder: fixed a possible performance degradation when processing a referenced dataset.

Bug fixInfrastructure Standards

LCD-13549
Fixed an issue where the TLcdIFCModelDecoder did not properly handle the material transparency defined on IfcSurfaceStyleShading and IfcIndexedColourMap elements.

Upgrade considerationInfrastructure Standards

LCD-13552, LF-2631
The myVRDatakitConverter library has been upgraded to version 2024.03.74631. This library is used by the TLcdRevitModelDecoder. This upgrade brings the following new features and enhancements:
  • Fixes a decoding crash for some Revit files
  • Contains several improvements to the generated Revit metadata

2024.0.07

ImprovementLuciadLightspeed

LF-2560
Improved the robustness when retrieving corrupt tiles from Fusion tile repositories (e.g. preprocessed point clouds). The new behavior logs an error and reports the tile as unavailable.

ImprovementLuciadLightspeed

LF-2560
Improved the robustness when writing to Fusion tile repositories (e.g. when preprocessing point clouds) on unreliable storage. The new behavior performs multiple write attempts.

Bug fixLuciadLightspeed

LCD-13445
TLcdBingMapsModelDecoder: resolved an issue where unexpected parameters in the Bing Maps template URL could trigger a parse exception.

Bug fixLuciadLightspeed

LCD-13533
Fixed an SLD icon rendering issue that prevented the use of an SLD size larger than 500 meters or feet for pixel-based icons.

Bug fixInfrastructure Standards

LCD-13501
Fixed an issue where the TLcdIFCModelDecoder showed wrong material information in specific use cases.

2024.0.06

Bug fixOGC Server

LCD-13525
Since version 2024.0, the WFS server could return exception reports for valid POST (XML) requests.

2024.0.05

ImprovementInfrastructure Standards

LCD-13506
Clarified limitation of the TLcdRevitModelDecoder with respect to textured materials.

Bug fixLuciadLightspeed

LCD-13496
TLcdGeoPackageModelDecoder, TLcdLVDBModelDecoder and TLcdSpatiaLiteModelDecoder now are able to correctly resolve the srs_id of data when the name of the table or column containing the spatial data contains non ASCII characters.

Bug fixOGC Server

LCD-13508
The following WCS server issues have been fixed related to the handling of the optional "Sections" parameter in a GetCapabilities request:
  • The parameter was not supported for WCS 1.1 POST requests.
  • The parameter was not validated for WCS 1.0 GET and POST requests.

Bug fixOGC Server

LCD-13510
The WFS server returned a WFS 1.1 response instead of a WFS 2.0 response for a WFS 2.0 GetFeature hits request.

Bug fixDefense Standards

LCD-13500
TLcdNITFModelDecoder can now process image blocks with differing width and height, meaning they no longer need to be square.

2024.0.04

ImprovementLuciadLightspeed

LCD-13270
A new article How to load multi-dimensional WM(T)S layers has been added to explain how to access the available dimensions for a WM(T)S layer, supply dimension values in requests and visualize the resulting data in a 2D and 3D view.

ImprovementAdvanced Raster Connectors

LCD-13456
The TLcdGDALModelDecoder can now handle data in which the image is rotated relative to the axes of the model reference. In this case a fitted (also called "derived") projected ILcdGridReference will be returned as a model reference.

ImprovementAdvanced Raster Connectors

LCD-13455
The TLcdGDALModelDecoder will now decode a ILcdModelTreeNode if the data contains subdatasets.

ImprovementInfrastructure Standards

LCD-13486
Fixed an issue where the line weight of shapes from DWG datasets was not displayed correctly.

Bug fixLuciadLightspeed

LCD-13477
Editing of geometries visualized by a PointSymbolizer can now be disabled. This capability can be activated on a TLcdSLDPointSymbolizer by configuring an SLD vendor option with name allowEditing and value false.

Bug fixLuciadLightspeed

LCD-13476, LCD-13470
Changes made in the scope of LCD-13438 have been reverted. An alternative solution is provided through LCD-13477.

Bug fixLuciadLightspeed

LCD-13424
It is now possible to query ILcdModel instances created by the TLcdGeoPackageModelDecoder on fields that start with a number.

Bug fixLuciadLightspeed

LCD-12862
If the new semantics given to a TLcdSemanticsOp contain nodata values but the original semantics did not, they will now be taken into account in further processing. This means pixel values matching the nodata value do not participate in any further operations. These pixels will not be displayed when visualized on screen.

Bug fixOGC Server

LCD-13475
When using WMS layer dimensions the following dimensions are now published in the capabilities:
  • Dimensions with an axis without a unit.
  • Dimensions with strings as possible values.

Bug fixReal-time Engine

LCD-13487
TLspContinuousLabelingAlgorithm didn't handle edited labels correctly anymore. Such labels were, for example, not correctly moved when colliding with one of the view's edges, or with another label. This was a regression that was introduced in the first LuciadLightspeed 2022.1 release.

Bug fixDefense Symbology

LCD-11416
Resolved an issue where the icon of the "Unspecified Mine" symbol was incorrect for MIL-STD-2525d, APP-6C and APP-6D

Upgrade considerationLuciadLightspeed

LCD-13414

Fixed a potential deadlock when modifying the ILcdCollection that is returned by ILspInteractivePaintableLayer#getObjectsWithPaintState, while holding a write lock on that collection. To fix this, ILcdCollection (and by extension ILcdList) now have additional methods that allow specifying an ILcdFireEventMode when performing modifications. By using the ILcdFireEventMode.FIRE_LATER event mode, collection change events are fired after the write lock has been released.

We recommend scanning your codebase for any custom usages of ILspInteractivePaintableLayer#getObjectsWithPaintState and making sure that any modifications to this collection happen within a write lock, while the change events are only fired after that write lock has been released. An example code snippet on how to do this can be found in the ILspInteractivePaintableLayer#getObjectsWithPaintState method javadoc.

2024.0.03

New featureInfrastructure Standards

LCD-13337
It is now possible to define an XML document next to a BIM dataset, to define an OGC Filter that will be applied on the data before it is converted to OGC 3D Tiles or exposed as a features dataset.
Please refer to the Filtering BIM data article for more information.

ImprovementLucy (LuciadLightspeed)

LUCY-5067
Opening and closing application panes now notifies the workspace manager that the workspace has changed.

ImprovementLuciadLightspeed

LCD-12583
The existing article Using LuciadLightspeed in a Maven repository has been extended with a section about using BOM files.

ImprovementLuciadLightspeed

LCD-10417
The TLcdGeoPackageModelDecoder and TLcdGeoPackageModelEncoder now have support for the following geometry types:
MULTICURVE
MULTISURFACE
CURVEPOLYGON
COMPOUNDCURVE

ImprovementLucy (LuciadLightspeed)

LUCY-5066
ALcyApplicationPaneTool now tries to save and decode the application pane content into the workspace, provided that there is an appropriate codec. This is illustrated in MapCentricModelCustomizerAddOn.

ImprovementLuciadLightspeed

LCD-13464
Improved support for OSGB datasets using an OSG StateSet with a ModeList.

ImprovementOGC Server

LCD-13447
The decoding behavior of spatial filters included in WFS GetFeature POST requests has now been aligned between all WFS versions: similar as for WFS 1.x requests, spatial filters in WFS 2.0 POST requests are now decoded and transformed to the geographic reference of the requested WFS feature type. For GET requests, this was already the case.

ImprovementDefense Symbology

LCD-3155
Improved scaling support for military icon symbols. The icons now don't become blurry when scaling the icons using TLspIconStyle.

ImprovementInfrastructure Standards

LCD-13408
TLcd3DTilesProcessorBuilder: Now uses all registered ILcdModelReferenceDecoder instances when searching for external model reference files.

Bug fixLucy (LuciadLightspeed)

LUCY-5065
The Lucy specific VM options in config/vmoptions now open access to java.desktop/javax.swing, which resolves a problem when editing properties in floating panels that use the JIDE docking framework.

Bug fixLuciadLightspeed

LCD-13347
The com.luciad.sqlite.cacheMode system property allows the user to provide the cache mode used by sqlite driver. Possible values are private and shared, with private being the default value.

Bug fixLuciadLightspeed

LCD-13474
TLcdEPSGReferenceParser parsed the TOWGS84 rotation incorrectly for some EPSG codes. Coordinate references using the following datums are affected:
  • IG05/12 Intermediate Datum (EPSG:1144)
  • World Geodetic System 1984 (G730) (EPSG:1152)
  • World Geodetic System 1984 (Transit) (EPSG:1166)
  • CR-SIRGAS (EPSG:1225)
  • Sistem Referensi Geospasial Indonesia 2013 (EPSG:1293)
  • International Terrestrial Reference Frame 1992 (EPSG:6651)

Bug fixLuciadLightspeed

LCD-13351
TLcdSphereUtil#closestPointOnGeodesic and TLcdSphereUtil#closestDistanceToGeodesic didn't always produce correct results.

Bug fixLuciadLightspeed

LCD-11876
Fixed an accuracy issue in TLcdGeoTIFFModelDecoder and TLcdMIFModelDecoder for data that makes use of the "Amersfoort / RD New" reference (EPSG:28992).

Bug fixLuciadLightspeed

LCD-10789
TLcdLambert1972BelgiumGridReference now aligns more closely to the definition of EPSG:31300 in the EPSG database. This improves the precision of this reference by a few millimeters.

Bug fixLuciadLightspeed

LCD-10790
Transformations to/from EPSG:31370 are now more precise. TLcdWKTReferenceParser and TLcdEPSGReferenceParser now don't return an instance of TLcdLambert1972BelgiumGridReference anymore because it deviates from the definition of EPSG:31370.

Bug fixLuciadLightspeed

LCD-13448
TLcdGeorefUtil: fixed a rounding error that could occur when parsing a GEOREF coordinate.

Bug fixLuciadLightspeed

LCD-13438
Editing of geometries visualized by a PointSymbolizer can only be enabled when the geometry is an ILcdPoint. This avoids unwanted behavior when editing is enabled in combination with an SLD style containing multiple symbolizers.

Bug fixLuciadLightspeed

LCD-13427
TLcdCartesian#orientation2D no longer throws an exception when passing an empty point list. This also improves the robustness of the TLcdGeoJsonModelEncoder.

Bug fixLuciadLightspeed

LCD-13407
The XML encoders can now encode xsd:anyType elements with a built-in XML data type that is specified using xsi:type.

Bug fixLuciadLightspeed

LF-2200
The evaluation of an OGC IsLike operator on a database model has been made more robust against the use of special characters.

Bug fixLuciadLightspeed

LCD-10813
The TLcdGeoPackageModelDecoder now correctly handles the CIRCULARSTRING geometry type as a collection of zero or more continuous circular arc segments and the TLcdGeoPackageModelEncoder is able to encode a ILcdCompositeCurve containing multiple ILcdCircularArcBy3Points instances to CIRCULARSTRING.

Bug fixLuciadLightspeed

LCD-13460
Fixed an SLD GXY view issue that triggered errors when an empty SLD Point, Line and/or Polygon symbolizer was encountered. Aligned with the Lightspeed view behavior, such symbolizers will no longer cause and error but result in an empty visualization.

Bug fixLuciadLightspeed

LCD-13449
Fixed a possible ArrayIndexOutOfBoundsException when accessing DTED data through the ILcdRaster API. This could occur when using the TLcdDTEDDirectoryModelDecoder with lazy DTED tile loading and when the DTED file deviates from the DTED specification.

Bug fixLuciadLightspeed

LCD-6862
TLcdTABRasterModelDecoder could throw a RuntimeException instead of an IOException when decoding a TAB for raster data not supported by JAI. Now it throws an IOException with a more clear message.

Bug fixLuciadLightspeed

LCD-12749
TLcdBandColorSemanticsBuilder ignored the specified no data value when building from a color model.

Bug fixLuciadLightspeed

LCD-13377
Fixed an issue where some LIDAR data was painted with inverse colors.

Bug fixLuciadLightspeed

LCD-13429, LCD-13432
The WMTS model decoder now skips tile matrix sets with an unknown geographic reference instead of throwing an UnsupportedOperationException.

Bug fixLuciadLightspeed

LCD-13431
The WMTS model decoder used an incorrect geographic reference when creating a model for a WMTS layer backed by a GoogleCRS84Quad tile matrix set that used a reference with a lat/lon axis order. This prevented the layer from being visualized on the map.

Bug fixLuciadLightspeed

LCD-13379
TLcdOGC3DTilesModelDecoder: fixed an issue when opening Luciad Point Cloud datasets by passing a file URL.

Bug fixLuciadLightspeed

LCD-13413
Fixed an issue where resource jar files that don't contain any Java classes (e.g. lcd_epsg_resources.jar) could not be loaded in an OSGi environment.

Bug fixDatabase Connectors

LCD-13280
TLcdOracleSpatialModelDecoder no longer uses the SDO_COLUMN_NAME column of the USER_SDO_INDEX_METADATA view to determine the dimension of the spatial index, because this column is not always present.

Bug fixOGC Server

LCD-13434
Fixed a bug where the output of a WFS GetFeature request failed on data types with a Map property in combination with property name filtering.

Bug fixOGC Server

LCD-13423
The WFS server could not handle property name filters for property names that were renamed during the encoding to GML. Such a rename can occur when a property name in the original data starts with a character that is not allowed as first character in an XML element - for example, a number.

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.

Bug fixDefense Symbology

LCD-13411
Resolved the following issues with the depiction of the MIL-STD-2525b symbol "Dummy Minefield - Dynamic" (2.X.2.3.7).
  • The outline of the area is now drawn with a solid stroke instead of a dashed stroke
  • The hostile indicator ("ENY") is now rendered in the outline stroke, when the symbol's affiliation is set to 'Hostile'

Bug fixDefense Symbology

LCD-13394
Resolved an issue when displaying "Axis of Advance - Airborne" symbols contained in an NVG arrow element, where the "crossover" point would be located at the tail of the arrow instead of at the tip of the arrow.

Bug fixDefense Symbology

LCD-13412
Resolved an issue with the MIL-STD-2525c icon symbol 'Air Control - Tanking' (2.X.2.1.1.7.4). This symbol's icons was depicted with the letter 'T' inside the vertical lines instead of the letter 'K'.

Bug fixInfrastructure Standards

LF-2520
TLcd3DTilesProcessorBuilder: fixed an issue where TIFF textures could end up missing in the output.

Bug fixInfrastructure Standards

LCD-13457
TLcd3DTilesProcessorBuilder: fixed a possible crash issue when handling textures with indexed colors.

Bug fixInfrastructure Standards

LCD-13352
Changed the width of TEXT and MTEXT objects to be narrower. Before, text would often be too wide. Now, the width matches that of CAD programs more closely.

Bug fixInfrastructure Standards

LCD-13472
Fixed an issue where the TLcdIFCModelDecoder did not revert the direction of a trimmed IfcLine or IfcPolyline when necessary.

Bug fixInfrastructure Standards

LCD-13471
The TLcdIFCModelDecoder now ignores elements with an IfcGridPlacment. A warning is logged when such elements are encountered.

Bug fixInfrastructure Standards

LCD-13298
The TLcdCompositeModelDecoder, when used in combination with a TLcdIFCModelDecoder, wasn't able to decode the IFC features datasource returned by the discoverDataSources method.

Bug fixMaritime Standards

LCD-13463
Fixed an issue in internal bounds handling: a ClassCastException could happen when cloning a cell model bounds.

Bug fixTiling Engine

LF-2186, LF-2607
The preprocessing jobs that are created to convert point cloud datasets into OGC 3D Tiles services can now be properly stopped and restarted. Previously, restarting a paused job that converted data into OGC 3D Tiles could result in the job disappearing from the jobs list in the Studio web application. In some cases this also results in two jobs pre-processing the same data.

Upgrade considerationWeather & Environment Standards

LCD-13437
The version of the thredds library was increased to 4.6.6.lcd-18. This fixes an issue with using the pom file of this library.

Upgrade considerationInfrastructure Standards

LCD-13400
The myVRDatakitConverter library has been upgraded to version 2024.03.73679. This library is used by the TLcdRevitModelDecoder. This upgrade brings the following new features and enhancements:
  • Adds support for Revit 2025
  • Fixes a decoding crash for some Revit files
  • Contains several improvements to the generated Revit metadata

2024.0

New featureLuciadLightspeed

TLcdMBTilesModelDecoder now also supports MBTiles services, next to files. To decode an MBTiles service you need to provide the TileJSON endpoint as source. An MBTiles service can for example be set up with LuciadFusion as of version 2024.0.

New featureLuciadLightspeed

The OGC Symbology Encoding (SE) implementation now supports replacing colors in images. This can be achieved by using the SE vendor options colorReplace and colorReplaceTolerance in a TLcdSLDRasterSymbolizer. The new article How to replace a color illustrates this capability with an example.

New featureLuciadLightspeed

TLcdPixelReplaceOp is a new image operator which replaces a given color or value in an image with another. It can be used, for instance, to remove blank borders around an image by replacing them with a transparent color.

New featureAdvanced Raster Connectors

LuciadFusion and LuciadLightspeed users can now visualize ECW images with any number of bands and any bit depth.

New featureOGC Server

The WCS server in the OGC Web Server Suite now supports WCS version 2.0.1.

New featureReal-time Engine

TLspRadarVideoLayerBuilder now has the ability to work with radar feeds whose angular or radial resolution are variable over time. This requires the user to manually specify the resolution of the visualization, which is then effectively decoupled from that of the data. The new method displayResolution() on the layer builder is used to enable this behavior. If called, the radar video layer will be fully robust against all variations in the resolution of the incoming data.

New featureInfrastructure Standards

Visualization of a Revit file in LuciadRIA, processed and served using LuciadFusion's OGC 3D Tiles service
Visualization of a Revit file in LuciadRIA, processed and served using LuciadFusion's OGC 3D Tiles service

Added support for the Autodesk Revit data format. Autodesk Revit is a BIM software tool for architects, engineers, and construction professionals to model shapes, structures, and systems in 3D.

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

ImprovementLuciadLightspeed

The following new system properties let users configure reference decoder priority for the following model decoders:

The priority decides whether the model reference decoding is first attempted from the reference information embedded in the data file and then fall back to external reference source files such as WKT (.prj), REF (.ref) and EPSG (*.epsg) in case of an error or vice versa when the other reference decoder priority is selected.

For more information on how to configure the reference decoder priority for supported ILcdModelDecoder implementations, refer to the following article: Setting model reference decoder priority

ImprovementLuciadLightspeed

LCD-13341
The metadata in the gpkg_data_columns table of a GeoPackage file is now used by TLcdGeoPackageModelDecoder to provide the correct display names in TLcdDataModelDisplayNameProvider#getDisplayName(TLcdDataProperty).

ImprovementLuciadLightspeed

The included Apache Ant distribution has been upgraded to version 1.10.14. This improves compatibility with Java 21.

ImprovementLuciadLightspeed

LCD-13289
It is now possible to customize the tile grid reference used by the tiled WMS painters for GXY and Lightspeed views. The tile grid reference can be specified through a newly added constructor in TLcdGXYTiledWMSProxyPainter and TLspTiledWMSProxyPainter. Customizing tile grid references can be useful to align with a server-defined tile grid reference used for caching of requests.

ImprovementLuciadLightspeed

LuciadLightspeed and LuciadFusion now support Java 21. Refer to the documentation on hardware and software requirements in the prerequisites section for more information.

ImprovementLuciadLightspeed

LCD-8681, LCD-13260
Introduced TLcdDataProperty#getSourceName, which contains the property name as it was defined in the source data. This may differ from the actual name of the property within the TLcdDataType, because that name can contain only alphanumeric characters and underscores, and may therefore have been sanitized.

When building a data type, the source name of a property can be configured with a setter on the TLcdDataPropertyBuilder. Additionally, TLcdDataType#getProperty now also checks this source name when searching a property that matches a given name.

The default TLcdDataModelDisplayNameProvider has also been adapted to use this source name by default, when retrieving a display name for a property.

Finally, The TLcdGeoJsonModelEncoder now uses these source names by default as well, when encoding data objects to GeoJSON features.

ImprovementLuciadLightspeed

LCD-9753
TLcdGeoPackageFeatureDatabaseModelEncoder: encoding data objects with multiple geometry properties now results in a clear error message, instead of a message indicating a unique constraint violation.

ImprovementOGC Server

LCD-13326
The WMS Server now supports a vendor-specific FILTER parameter that operates like the WFS GetFeature FILTER parameter for both GetMap and GetFeatureInfo requests.

ImprovementOGC Server

LCD-9574
The tray icon of the OGC server sample now has an additional entry to open the landing page.

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-13199

A new style class, TLcdMilitarySymbolStyle, has been added to the Military Symbology API. This class can be used to define the symbol style of both APP-6 and MIL-STD-2525 symbols.

The usage is equivalent to the usage of the existing, standard specific style classes (TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle). You can configure a symbol dependent style, by either having your domain objects implement ILcdStyledMilitarySymbol or by defining a default style on your painter providers or layers.

The following methods have been added to configure a TLcdMilitarySymbolStyle on painter providers and layers:

  • TLcdAPP6AGXYPainterProvider.setDefaultMilitarySymbolStyle
  • TLcdAPP6AGXYLabelPainterProvider.setDefaultMilitarySymbolStyle
  • TLspAPP6ALayerBuilder.defaultStyle
  • TLspAPP6ASymbolStyle.Builder.militarySymbolStyle
  • TLcdMS2525bGXYLabelProvider.setDefaultMilitarySymbolStyle
  • TLcdMS2525bGXYLabelPainterProvider.setDefaultMilitarySymbolStyle
  • TLspMS2525bLayerBuilder.defaultStyle
  • TLspMS2525bSymbolStyle.Builder.militarySymbolStyle
  • TLspMilitarySymbologyLayerBuilder.defaultStyle

ImprovementInfrastructure Standards

The discoverDataSources method of TLcdIFCModelDecoder now returns a list of TLcdBIMDataSource objects.

Bug fixLuciadLightspeed

LCD-13293
TLcdSLDMark: improved anti-aliased rendering of several types.

Bug fixLuciadLightspeed

LCD-13245
TLcdIOUtil#resolve returned an incorrect result for source names starting with "jpip://". The method now returns null.

Bug fixLuciadLightspeed

LCD-13252
TLcdSLDFeatureTypeStylePainter now implements ILcdGXYEditorProvider, which returns itself as ILcdGXYEditor to edit objects in a GXY view. This better aligns with the already implemented painter-related interfaces ILcdGXYPainter and ILcdGXYPainterProvider.

Bug fixLuciadLightspeed

LCD-13231
TLcdEarthRepositoryModelDecoder: improved the robustness when interrupting a thread that was reading a tile repository. This improves compatibility with Java 21.

Bug fixLuciadLightspeed

LCD-13386
Resolved an issue with the Maven sample setup scrip, where the sample project's settings.xml file was not used when deploying the license to the Maven repository.

Bug fixLuciadLightspeed

LCD-12748
Fixed an issue in the TLcdGeoTIFFModelDecoder for the case of data with photometric interpretation RGB with additional sample values. The standard cases RGB(A) worked fine. For the case with additional sample values the ALcdImage band semantics did not include information on the red, green, and blue channels. It would be interpreted as a greyscale image by the image painter. Now the correct band semantics are reported which makes the image painter pick it up and render the file correctly.

Bug fixDatabase Connectors

LCD-4462
TLcdOracleSpatialModelDecoder now uses the CS_SRS table to determine the ILcdModelReference of the decoded ILcdModel when the ILcdModelReference can not be determined using a list of pre-defined references.

Upgrade considerationLuciadLightspeed

LuciadLightspeed and LuciadFusion now increasingly make use of Java's own file and URI handling API to improve reliability, consistency, and portability when handling data sources. This includes, but is not limited to TLcdIOUtil, TLcdInputStreamFactory, and several model decoders. Because of this, the following invalid data source paths may no longer be recognized:
  • The colon ":" is no longer accepted in Windows file names.
  • Spaces are no longer accepted in file URI's. They need to be escaped as described in the URI specification.
Make sure to correct these source names before passing them to the API.

Upgrade considerationLuciadLightspeed

LuciadLightspeed and LuciadFusion no longer support 32-bit JDKs. Previously there was still limited support for Linux.

Upgrade considerationLuciadLightspeed

The minimum supported glibc (GNU C Library) for Linux has been raised to 2.28. This means that Ubuntu 18 is no longer supported.

Upgrade considerationLuciadLightspeed

LCD-12921

The default behavior of a number of model decoders has been changed. We now enable support for vertical datums by default for a number of model decoders. The vertical datum support will cause the appropriate geoid height to be applied to data files of the affected formats, if the data advertises a vertical datum. In previous versions, we ignored the vertical datum advertised by data by default.

Using the geoid will result in the use of more accurate elevation values, at the cost of performance when processing the data.

The following data formats are affected by this change:

  1. DEM: TLcdDEMModelDecoder
  2. DMED/DTED: TLcdDMEDModelDecoder, TLcdDTEDModelDecoder, TLcdDTEDDirectoryModelDecoder
  3. ETOPO: TLcdETOPOModelDecoder
  4. GeoTIFF: TLcdGeoTIFFModelDecoder
  5. LAS/LAZ: TLcdLASModelDecoder
  6. SwissDHM: TLcdSwissDHMMatrixModelDecoder

Because the default behavior has changed for these formats, your data may be painted at a different height, which can cause misalignment with your other layers. For example, you may apply the geoid to points in a LAS file, which causes your LAS points to be painted at a different elevation. If you combine this LAS data with an inaccurate terrain layer, there may be overlap between your LAS points and the terrain layer. You should check that your data is still properly aligned with your other layers after upgrading.

The recommended way to fix such alignment issues is to make sure you use an accurate terrain layer and use the same geoid on all your layers with elevation data. You should also verify that all your elevation data advertises the correct vertical datum. Read our article on Detecting and fixing vertical datum issues for more details.

If you have different behavior then before, and you are sure that the old behavior is preferred, you can revert to the old behavior in the following ways:

  • Disable geoid support for a specific model decoder, by calling the method #setSupportGeoidDatums(boolean)
  • Disable geoid support for all aforementioned model decoders, by setting the system property com.luciad.geodesy.geoidSupport.LEGACY to true.

Upgrade considerationLuciadLightspeed

LCD-13176
TLcdGXYImagePainter, TLcdRasterPainter, TLcdMultilevelRasterPainter, TLcdEarthGXYRasterPainter, TLcdGXYTiledWMSProxyPainter and TLcdWMSProxyGXYPainter now apply brightness and contrast to raster layers with the same algorithm as Lightspeed's TLspRasterStyle. This used to be different but has now been aligned. With the new behavior, the [0, 2] brightness value range covers the entire color brightness range (black to white). The contrast setting offers a modifier on top for further tweaking.

Upgrade considerationLuciadLightspeed

The LuciadLightspeed and LuciadFusion APIs now use the Jakarta EE 10 API and Jakarta Servlet 6.0 API, where in previous releases the Java EE 7 API and Java Servlet 3.1 API were used. There are a few breaking changes in the new Jakarta Servlet 6.0 API, the main one being a rename of the javax.servlet package to jakarta.servlet. Any LuciadLightspeed or LuciadFusion API that use classes from this package thus contain a corresponding breaking change. The affected classes are mainly the classes implementing the OGC server standards (WM(T)S, WFS, etc). Any compilation errors you encounter related to this change can typically be resolved by performing a find and replace operation.

Refer to the documentation on hardware and software requirements in the prerequisites section for more information.

Upgrade considerationLuciadLightspeed

LuciadLightspeed and LuciadFusion now require Java 17. Refer to the documentation on hardware and software requirements in the prerequisites section for more information.

Upgrade considerationLuciadLightspeed

LCD-9539
The following dependencies have been updated:
Group ID Artifact ID Old Version New Version
com.fasterxml.jackson.core jackson-annotations 2.14.2 2.15.3
com.fasterxml.jackson.core jackson-core 2.14.2 2.15.3
com.fasterxml.jackson.core jackson-databind 2.14.2 2.15.3
com.google.protobuf protobuf-java 3.19.4 3.25.3
com.thetransactioncompany cors-filter 1.3.2 3.0
com.thetransactioncompany java-property-utils 1.6 1.17
jakarta.servlet jakarta.servlet-api 4.0.4 6.0.0
joda-time joda-time 2.8.1 2.10.10
org.apache.commons commons-compress 1.22 1.26
org.apache commons-io 2.6 2.15.1
org.apache.commons commons-lang3 3.12.0 3.14.0
org.apache.xmlgraphics batik-xml 1.16 1.17
org.apache.xmlgraphics batik-util 1.16 1.17
org.apache.xmlgraphics batik-transcoder 1.16 1.17
org.apache.xmlgraphics batik-swing 1.16 1.17
org.apache.xmlgraphics batik-svggen 1.16 1.17
org.apache.xmlgraphics batik-svg-dom 1.16 1.17
org.apache.xmlgraphics batik-script 1.16 1.17
org.apache.xmlgraphics batik-shared-resources 1.16 1.17
org.apache.xmlgraphics batik-parser 1.16 1.17
org.apache.xmlgraphics batik-i18n 1.16 1.17
org.apache.xmlgraphics batik-gvt 1.16 1.17
org.apache.xmlgraphics batik-gui-util 1.16 1.17
org.apache.xmlgraphics batik-ext 1.16 1.17
org.apache.xmlgraphics batik-dom 1.16 1.17
org.apache.xmlgraphics batik-css 1.16 1.17
org.apache.xmlgraphics batik-constants 1.16 1.17
org.apache.xmlgraphics batik-codec 1.16 1.17
org.apache.xmlgraphics batik-bridge 1.16 1.17
org.apache.xmlgraphics batik-awt-util 1.16 1.17
org.apache.xmlgraphics batik-anim 1.16 1.17
org.apache.xmlgraphics xmlgraphics-commons 2.7 2.9
org.slf4j slf4j-api 1.7.36 2.0.9
org.postgresql postgresql 42.5.4 42.7.3
org.checkerframework checker-qual 3.5.0 3.42.0

The following dependencies have been added:
Group ID Artifact ID Version
org.locationtech jts-core 1.19.0

The following dependencies have been removed:
Group ID Artifact ID Version
com.vividsolutions jts-core 1.14.0

Upgrade considerationLuciadLightspeed

LCD-9539
The JTS library has been updated to version 1.19.0. Please note that this library is not backward compatible. All classes have moved from com.vividsolutions.* to org.locationtech.*.

Upgrade considerationLuciadLightspeed

LCD-12881
The LWJGL Java binding for the OpenGL and OpenCL APIs has been updated to version 3.3.3. This improves compatibility with Java 19 and higher.

Upgrade considerationLuciadLightspeed

LCD-10042
TLcdLRDBModelEncoder#SUPPORTED_COVERAGE_TYPES is removed from the API.

Upgrade considerationAdvanced Raster Connectors

The class TLcdECWConfiguration is now removed from the API to keep the API clean and simple. If you were using this class, it is now required to use TLcdECWModelDecoder#getMaxCacheSize and TLcdECWModelDecoder#setMaxCacheSizeinstead of similar methods exposed by TLcdECWConfiguration.

The class TLcdECWImageDecoder is now removed from the API due to its limited capability in supporting decoding of multi band and multi bit depth ECW data files. If you were using this class, it is now required to use the enhanced TLcdECWModelDecoder, which fully supports decoding multi band and multi bit depth ECW data files. This updated decoder provides a more robust and versatile solution for handling ECW data.

The previous libecw-6.1.*.jar libraries are now replaced by ecw-6.1.0-native*.jar containing the native libraries provided as part of ERDAS ECW JP2 SDK 6.1.0. This change also adds the ecw-6.1.0.jar library which contains the JNI bindings to access the functionalities exposed by the packaged native libraries.

Upgrade considerationAdvanced Raster Connectors

The method TLcdGDALModelDecoder#setUnlockAllFormats(boolean) and the system property com.luciad.format.gdal.unlockAllFormats have been replaced with the method TLcdGDALModelDecoder#setAllowUnverifiedFormats(boolean) and the system property com.luciad.format.gdal.allowUnverifiedFormats. The old method would only unlock a specific set of whitelisted formats, whereas the new method will unlock any and all formats for which a GDAL driver is found.

Upgrade considerationAdvanced Raster Connectors

The third-party library GDAL was updated to version 3.8.3. With this update, the TLcdGDALModelDecoder can no longer decode Arc/Info Export E00 GRID files. The GDAL library no longer offers supports for this format. The jpeg, png16 and proj libraries are no longer loaded separately, they are now packaged with the gdal library.

Upgrade considerationDatabase Connectors

LCD-6130, LCD-8872
The TLcdDataModel of the TLcdDatabaseModelDescriptor now maps columns of type CLOB and TIMESTAMP to the correct types, TLcdDatabaseDataTypes#ClobType and TLcdDatabaseDataTypes#TimestampType. Data stored in a column of type TIMESTAMP is now converted into an object of type java.sql.Timestamp instead of a oracle.sql.TIMESTAMP when loading data from an Oracle database.

Upgrade considerationDatabase Connectors

LCD-10712
SQL Server versions 2008 and 2012 are no longer supported by the TLcdMSSQLModelDecoder and TLcdMSSQLModelEncoder. It's advisable to upgrade to a newer version of SQL Server if you are still using version 2008 or 2012.

Upgrade considerationDatabase Connectors

LCD-13196
Oracle versions 8, 9i, 10g, 11g, 12c and 18c are no longer supported as a database by the TLcdOracleSpatialModelDecoder, TLcdOracleSpatialModelEncoder and TLcdOracleGeoRasterModelDecoder. These versions are no longer supported by Oracle, see the Oracle Lifetime Support Policy document. It's advisable to upgrade to a newer version of Oracle database if you are still using any of these versions.

Upgrade considerationDatabase Connectors

LCD-13197
PostgreSQL versions 8.x, 9.x, 10 and 11 are no longer supported as a database by the TLcdPostGISModelDecoder and TLcdPostGISModelEncoder. These versions are no longer supported by the PostgreSQL Global Development Group, see the PostgreSQL Versioning Policy page. It's advisable to upgrade to a newer version of PostgreSQL if you are still using any of these versions.

Upgrade considerationOGC Server

Security updates have been applied to the following sample dependencies of the OGC server sample:
Group ID Artifact ID Old Version New Version
org.springframework.boot spring-boot 2.7.14 3.2.1
org.springframework.boot spring-boot-starter 2.7.14 3.2.1
org.springframework.boot spring-boot-autoconfigure 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-jetty 2.7.8 3.2.1
org.springframework.boot spring-boot-starter-json 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-logging 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-web 2.7.14 3.2.1
org.springframework spring-aop 5.3.29 6.1.2
org.springframework spring-beans 5.3.29 6.1.2
org.springframework spring-context 5.3.29 6.1.2
org.springframework spring-core 5.3.29 6.1.2
org.springframework spring-expression 5.3.29 6.1.2
org.springframework spring-jdbc 5.3.29 6.1.2
org.springframework spring-tx 5.3.29 6.1.2
org.springframework spring-web 5.3.29 6.1.2
org.springframework spring-webmvc 5.3.29 6.1.2
com.zaxxer HikariCP 4.0.3 5.0.1
org.ow2.asm asm-commons 9.4 9.6
org.ow2.asm asm-tree 9.4 9.6
com.fasterxml.jackson.datatype jackson-datatype-jdk8 2.14.2 2.15.3
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.14.2 2.15.3
com.fasterxml.jackson.module jackson-module-parameter-names 2.14.2 2.15.3
org.apache.tomcat.embed tomcat-embed-el 9.0.78 10.1.17
org.eclipse.jetty jetty-client 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-http 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-io 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-plus 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-security 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-server 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-util 9.4.50.v20221201 12.0.7
org.eclipse.jetty jetty-xml 9.4.50.v20221201 12.0.7
org.slf4j jul-to-slf4j 1.7.36 2.0.9
org.slf4j slf4j-api 1.7.36 2.0.9
org.apache.logging.log4j log4j-api 2.17.2 2.21.1
org.apache.logging.log4j log4j-to-slf4j 2.17.2 2.21.1
ch.qos.logback logback-classic 1.2.12 1.4.14
ch.qos.logback logback-core 1.2.12 1.4.14
org.yaml snakeyaml 2.0 2.2
jakarta.annotation jakarta.annotation-api 1.3.5 2.1.1
jakarta.websocket jakarta.websocket-api 1.1.2 2.1.1

The following dependencies have been added:
Group ID Artifact ID Version
org.eclipse.jetty.ee10 jetty-ee10-annotations 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-plus 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-servlet 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-servlets 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-webapp 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-websocket-jakarta-client 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-websocket-jakarta-common 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-websocket-jakarta-server 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-websocket-jetty-server 12.0.7
org.eclipse.jetty.ee10 jetty-ee10-websocket-servlet 12.0.7
org.eclipse.jetty jetty-alpn-client 12.0.7
org.eclipse.jetty jetty-jndi 12.0.7
org.eclipse.jetty jetty-session 12.0.7
jakarta.websocket jakarta.websocket-client-api 2.1.1

The following dependencies have been removed:
Group ID Artifact ID Version
org.eclipse.jetty jetty-annotations 9.4.50.v20221201
org.eclipse.jetty jetty-continuation 9.4.50.v20221201
org.eclipse.jetty jetty-servlet 9.4.50.v20221201
org.eclipse.jetty jetty-servlets 9.4.50.v20221201
org.eclipse.jetty jetty-util-ajax 9.4.50.v20221201
org.eclipse.jetty jetty-webapp 9.4.50.v20221201
org.eclipse.jetty.websocket websocket-api 9.4.50.v20221201
org.eclipse.jetty.websocket websocket-client 9.4.50.v20221201
org.eclipse.jetty.websocket websocket-common 9.4.50.v20221201
org.eclipse.jetty.websocket websocket-server 9.4.50.v20221201
org.eclipse.jetty.websocket websocket-servlet 9.4.50.v20221201

Upgrade considerationDefense Symbology

LCD-13140

The geometry type of a number of APP-6A/B Minefield symbols has been changed. These symbols were modeled as polygons, which required the symbol to have at least 3 anchor points to define the symbol's shape. To better align these symbols with the NVG geometry bindings specification, the geometry has now been changed to a point, which requires only a single anchor point to define the symbol's shape. The following symbols are affected by this change:

  • 2.X.2.2.1.6.1 "Planned Minefield"
  • 2.X.2.2.1.6.2 "Completed Minefield"
  • 2.X.2.2.1.6.5 "Antitank (AT) Minefield"
  • 2.X.2.2.1.6.6 "Scatterable Mines"
  • 2.X.2.2.1.6.7 "Antipersonnel (AP) Minefield Reinforced With Scatterable With Self-Destruct Date-Time-Group"
  • 2.X.2.2.1.6.8 "Scatterable Minefield (Antitank Mines) With Self-Destruct Date-Time-Group"
  • 2.X.2.2.1.7 "Executed Volcano Minefield"

Upgrade considerationDefense Symbology

LCD-13138
The geometry type of the APP-6A/B symbol 2.X.2.3.1.1.2 "Fire Support Graphics - Fire Support Point - Target - Circular Target" has been changed. This symbol's geometry type was a circle, which required the symbol to have 2 anchor points to define the symbol's shape. To better align this symbol with the NVG geometry bindings specification, the geometry has now been changed to a point, which requires only a single anchor point to define the symbol's shape.

Upgrade considerationDefense Symbology

LCD-13175, LCD-13300

The interfaces ILcdAPP6AStyle and ILcdMS2525bStyle, and their implementations TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle have been deprecated.

If you need to create a symbol style, you should use the newly introduced class TLcdMilitarySymbolStyle.

Upgrade considerationInfrastructure Standards

The IFCPath property of the elements in the features model returned by the TLcdIFCModelDecoder has been deprecated. We recommended using the new AncestorPath property instead which has same value. The IFCPath property is still included to maintain backwards compatibility with clients that depend on it, but it will be removed in a future release.

Upgrade considerationInfrastructure Standards

The myVRDatakitConverter library, version 2024.03.73100, is added to the list of third party libraries. It is used by the TLcdRevitModelDecoder.

Upgrade considerationInfrastructure Standards

The discoverDataSources method of the TLcdBinzModelDecoder now returns a list containing two TLcdBIMDataSource objects: one for the geometry model, and one for the features model. Previously, it returned a list containing only a TLcdDataSource for the geometry model.

The following snippet can be used to get the geometry model for both the new and the previous version of this discoverDataSources method.


      TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
      List<? extends ILcdDataSource> dataSources = decoder.discoverDataSources("path/to/dataset.binz");
      ILcdModel geometryModel = decoder.decodeSource(dataSources.get(0));
    

Upgrade considerationInfrastructure Standards

The JNA library, version 5.14.0, is added to the list of third party libraries. It is used by the TLcdRevitModelDecoder.

Upgrade considerationInfrastructure Standards

The following deprecated DGN classes have been removed from the LuciadLightspeed API:

  • TLcdDGNMicroStationServlet
  • TLcdDGNMicroStationModelDecoder
  • TLcdDGNMicroStationDisplayInfo
  • TLcdDGNMicroStationLevelSymbology

Any usage of these classes should be replaced by the TLcdDGNModelDecoder.