2021.0

2021.0.11

ImprovementLuciadFusion

The OGC Filter functions startAngle / endAngle and startPoint / endPoint now fallback to the domain object's embedded geometry if the provided geometry property name does not exist and if the domain object itself is of type ILcdShape.

ImprovementLuciadFusion

LCD-12017
TLcdSHPModelEncoder now creates buffered output streams by default, which greatly improves encoding speed.

Bug fixLuciadFusion

LCD-12081
The OGC Filter functions startAngle / endAngle and startPoint / endPoint can now also be applied to ILcdPointList geometries that do not implement ILcdCurve.

Bug fixLuciadFusion

LCD-12078
Fixed issue in TLcdGeoTIFFModelDecoder for TIFF files with an index color model where setting an index as transparent value, using setForcedTransparentColorIndex, was not applied correctly.

Bug fixLuciadFusion

LF-2178
TLcdCSWRecordTransformationFactory would incorrectly apply ISO metadata CRS information to ISO metadata WGS 84 bounding boxes. This resulted in CSW and ATOM records with inconsistent bounding boxes.

Bug fixLuciadFusion

LF-2179
ALcdCSWCommandDispatcherFactory would return an exception when asking to include {http://www.opengis.net/ows}BoundingBox in the response of a GetRecords request.

Bug fixLuciadFusion

LCD-12062
TLspComplexStrokedLineStyle: On some GPUs you could get shader compile errors on the console when zooming in very close on a line styled with a TLspComplexStrokedLineStyle.

Bug fixLuciadFusion

LF-2173
TLcdOGCWMSCommandDispatcher threw a runtime exception when performing a GetMap request with duplicate layers.

Bug fixLuciadFusion

LCD-12073
TLcdClusteringTransformer could throw an ArrayIndexOutOfBoundsException, leading to incorrect clustering results. This has now been fixed.

Bug fixTerrain Analysis Engine

LF-2170
The description of the TEA sample has been updated to use the correct url for the API documentation.

2021.0.10

ImprovementLuciadFusion

LCD-12046
TLcdOGCFilterEvaluator now accepts a TLcdOGCBinarySpatialOperator with a shape that's not a point nor bounds object, provided that the source and target reference are equal.

ImprovementAviation Standards

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

Bug fixLuciadFusion

Fixed issue with the TLcdGXYGeoBufferPainter where it was no longer possible to add or remove points by CTRL+clicking the buffer axis.

Bug fixLuciadFusion

LCD-12035
TLcdGML31DirectPositionList and TLcdGML32DirectPositionList did not handle coordinates correctly for non-geodetic references with inverse axis order (i.e. Y-axis, X-axis).

Bug fixLuciadFusion

LCD-12031
Fixed an issue with the TLspEditController where domain objects that were selected before the controller was activated stayed in the edited state, even after deselection.

Bug fixLuciadFusion

LCD-12034
TLcdMultilevelGridLayer: you no longer need to override ILcdMultilevelGrid#createGridCoordinate to support grids with more than 5 levels.

Bug fixAdvanced Raster Services

LCD-12032
TLcdECWModelDecoder: fixed a potential JVM crash when attempting to decode a corrupted ECW file.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-12122
TLcdNVGGXYLayerFactory: Fixed an editing issue in NVG GXY views where area symbols were painted without edit handles and lost some required styling (Affiliation color, corner roundness, etc).

Bug fixDefense Symbology

TLcdNVGGXYPainterProvider: Fixed editing issue with arrow symbols where the arrow direction would be reversed during editing.

Bug fixS-63

LCD-12043

Fixed an issue when using an S-63 hardware ID directly using the system property com.luciad.format.s63.encryptedHardwareID or using the call setEncryptedHardwareID. Decoding of the corresponding S-63 cell permits would fail if that ID had a letter in its hexadecimal form, for example 0xA2345.

This did not affect hardware IDs based on Luciad-provided User Permits embedded in the Luciad license.

2021.0.09

ImprovementLuciadFusion

LCD-12005
The TLcdGeoTIFFModelDecoder now supports GeoTIFF files with a photometric interpretation Palette Color that have two bands of type BYTE rather than having a single band. The second band is interpreted as an alpha value.

Bug fixLuciadFusion

LCD-12028
Fixed the handling of WMS GetFeatureInfo requests for features with a geometry consisting of an extruded shape or a composite curve.

Bug fixLuciadFusion

LF-2162

LuciadFusion now detects usage of the 'X-Forwarded-Proto' HTTP header to detect if requests were sent to a LuciadFusion instance running behind a HTTPS reverse proxy. The endpointUrl of Service resources will now start with a secure protocol (e.g. HTTPS) when the 'X-Forwarded-Proto' header indicates HTTPS was used. The URI passes to the getEndpointBaseURI method of ILfnServiceTypeConfiguration instances, will similarly use an HTTPS protocol when the 'X-Forwarded-Proto' header indicates HTTPS was used.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

2021.0.08

Bug fixLuciadFusion

LCD-12009
TLcdGXYGeoBufferPainter:
  • Fixed a bug where the buffer width would be edited instead of the shape when trying to translate the first or last axis point of the buffer.
  • The TLcdGXYGeoBufferPainter#getMinimumEditDelta value will now be taken into account before applying edit operations which translate or reshape the buffer outline/axis. This helps prevent accidentally editing the buffer when selecting it.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-12007
TLspCGRSGridLayerBuilder: fixed an issue where CGRS grid lines were appearing outside of the CGRS grid area.

Bug fixDefense Symbology

LCD-12008
TLspCGRSGridLayerBuilder: fixed CGRS labels which were appearing and disappearing at wrong locations when panning in and out of the CGRS grid area.

2021.0.07

Bug fixLuciadFusion

LCD-11994
TLspRadarVideoLayerBuilder: a NegativeArraySizeException could sometimes occur during visualization of a radar.

Bug fixLuciadFusion

LCD-12000
Fixed the UnsupportedOperationException that occurred when querying a TLspLayer that contains view-spaced icons with a TLspIconStyle that uses orientation.

Bug fixReal-time Engine

LCD-11994
TLspRadarVideoLayerBuilder: a NegativeArraySizeException could sometimes occur during visualization of a radar.

2021.0.06

ImprovementLuciadFusion

You can now connect to OpenStreetMap tile services providing imagery data. The article How to load data from an OpenStreetMap tile server describes how to do this. A potential use case is to republish the service as an OGC WM(T)S service.

ImprovementLuciadFusion

To ease connecting to OpenStreetMap tile services, a new sample decoder samples.earth.decoder.osm.OpenStreetMapModelDecoder as well as layer factories for GXY (samples.earth.decoder.osm.OpenStreetMapLayerFactory) and Lightspeed maps (samples.lightspeed.decoder.osm.OpenStreetMapLayerFactory) have been added. The articles Visualize OpenStreetMap raster tiles data on a GXY map and Visualize OpenStreetMap raster tiles data on a Lightspeed map provide more information about their usage.

ImprovementLuciadFusion

LCD-11911
The maven sample project has been expanded. The sample project is now able to work with release which have a deployment license. The sample project will now come with a ProGuard configuration and a packaging configuration that creates production ready artifacts.

Bug fixLuciadFusion

LCD-11996
Reduced memory usage of rounded shapes created by TLcdShapeUtil and of military symbols with rounded lines in the Military Symbology module.

2021.0.05

New featureDefense Symbology

The new TLspCGRSGridLayerBuilder allows visualizing Common Grid Reference System (CGRS) grid data. This is demonstrated in the new military grid sample in the samples.lightspeed.grid.military package.
CGRS keypads
A CGRS grid where each cell is split into 10-minute keypads

Bug fixLuciadFusion

LF-2154
Fixed an issue that prevented loading the REST API console or documentation page when deploying LuciadFusion in Tomcat. The context path was not taken into account when fetching the REST API specification, which is needed to load the content of those pages.

Bug fixLuciadFusion

LF-2152
Fixed an issue where the LuciadFusion installer would install 2 versions of the PostgreSQL JDBC driver (version 42.0.0 and 42.2.19). When LuciadFusion uses the older version (42.0.0) of the driver, this could result in an "authentication type is not supported" error on startup if LuciadFusion Studio was configured to use a PostgreSQL database that uses scram-sha-256 for password authentication. Only the newer version (42.2.19) of the PostgreSQL JDBC driver has support for scram-sha-256 password authentication. The older version will no longer be installed.

Bug fixLuciadFusion

LCD-11993
TLspXYGridLayerBuilder didn't work correctly when creating a layer with only horizontal or only vertical lines. On certain zoom levels, lines would not be displayed or would be cut off at the wrong location.

Bug fixLuciadFusion

LCD-11988
The TLspSelectController could forward null events to its chained controller in some cases.

Bug fixLuciadFusion

LCD-11978
To increase compatibility, the TLcdE57ModelDecoder will no longer enforce the presence of the isAtomicClockReferenced element. Although this element is mandatory, some data may not have it.

Bug fixDefense Symbology

LCD-11987
Setting a forced color incorrectly introduced a fill in case of unfilled icon symbols.

Bug fixDefense Symbology

LCD-11933
Fixed an issue where symbols with a Headquarters (HQ) echelon, that are painted without Headquarters Staff Indicator, were anchored incorrectly. These symbols will now always be anchored in the center of the icon.

Upgrade considerationLuciadFusion

The CGRS and GARS GXY grid sample code has moved to the Defense Symbology component. It is showcased as a dedicated sample in the samples.gxy.grid.military package.

2021.0.04

ImprovementLuciadFusion

LF-2110
Added support for spatially filtering services when using a CSW service. The spatial geometry of a service that is used while querying is a spatial union of the bounding boxes of the products in this service.

ImprovementLuciadFusion

Scale-dependent stylers created by TLspScaleBasedStylerBuilder are now instances of the newly introduced class TLspScaleBasedStyler. This class allows to inspect the configured stylers and their scale ranges for easy reuse.

ImprovementLuciadFusion

LCD-11958
Improved the performance of printing a Lightspeed view with many icons.

ImprovementLuciadFusion

LCD-11947
The SLD text rendering option conflictResolution to enable/disable label decluttering (see release note of LCD-11850) is now also supported in the WMS server. This allows a WMS client to include an SLD in a request that enables(default) or disables label decluttering.

Bug fixLuciadFusion

LCD-11979
TLspComplexStrokedLineStyle: fixed errors that could lead to redundant compilation of shader programs when using multiple style instances that are actually equal.

Bug fixLuciadFusion

LCD-11974
TLspIconStyle: the minimum pixel size was not applied correctly during printing.

Bug fixLuciadFusion

LCD-11973
TLspGeorefGridLayerBuilder/TLspMGRSGridLayerBuilder/TLspXYGridLayerBuilder: fixed some labeling issues when working with HiDPI screens.

Bug fixLuciadFusion

TLspGeorefGridOverlayLabelBuilder/ TLspMGRSGridOverlayLabelBuilder/TLspXYGridOverlayLabelBuilder: the COORDINATE_AT_MOUSE_CURSOR mode did not work correctly on HiDPI screens.

Bug fixLuciadFusion

LCD-11969
Fixed issue where TLcdSHPModelDecoder and TLcdSHPModelDecoder2 would not apply the correct charset when decoding property names from the DBF file.

Bug fixLuciadFusion

LCD-11957
The TLspMagnifierController now correctly magnifies TLspGXYLayerAdapter layers in 2D views. Previously, magnified objects would not end up on the correct place in the magnified overlay.

Bug fixLuciadFusion

LF-2149
Removed spatial indices for Oracle databases that were added in a previous patch release of LuciadFusion (2020.1.31), since this leads to some spatial queries to produce incorrect results. If you did not have this patch installed, the spatial indices were not added and therefore no changes are needed on the database schema

Bug fixInfrastructure Standards

LCD-11900, LCD-11962

Resolved a caching issue which caused the .binz input files to remain open after decoding them with the TLcdBinzModelDecoder. This resulted in a number of issues when manipulating the files.
For example:

  • The .binz file could no longer be removed form disk.
  • When replacing an existing .binz file with a new version, this could result in IOExceptions being thrown when decoding the new version of the .binz file.

2021.0.03

ImprovementAviation Standards

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

Bug fixLuciadFusion

LF-2108
Added support for spatial filter operations when using a CSW service with an Oracle database. Previously, this resulted in a NullPointerException. The CSW capabilities have also been updated to better reflect which spatial filter operations are possible.

Bug fixLuciadFusion

LF-2137
Fixed an issue in the LuciadFusion Studio frontend that prevented users from being able to remove a service from the service list page, when a text search filter was active.

Bug fixLuciadFusion

LCD-11949
TLcdEPSGReferenceParser would throw an exception when the lcd_geoid_resources.jar file was missing from the class path. It now only throws when it effectively needs this resource file to parse a reference.

2021.0.02

ImprovementLuciadFusion

LCD-11937
The SLD placement of curved labels (= an SLD TextSymbolizer with vendor option followLine=true) has been improved in GXY views and in a WM(T)S server environment:
  • the placement is now dynamic within a WM(T)S server environment, making sure that each generated map or tile shows the label of the visible curved paths (such as streets or rivers); this avoids that labels disappear when zooming in.
  • the vendor option repeat=valueInPixels is now supported to repeat labels along a curved path, taking into account the specified pixel value to be used between subsequent labels; repeating labels can be useful to improve the label readability for long curved paths.

ImprovementLuciadFusion

LCD-11938
You can now configure a minimum gap in pixels between subsequent labels on the GXY labeling algorithm TLcdGXYCurvedPathLabelingAlgorithm, using the newly introduced methods setMinimumGap and getMinimumGap.

ImprovementInfrastructure Standards

LCD-11225
The 3D Tiles Processor now reads normal data from source OBJ files to export to the output 3D Tiles.

ImprovementRadar Connectors

LCD-11858
You can now configure the calculated altitude field to be used for tracks within the ASTERIX Categories 30 and 62:
  • Category 30: By default, the Calculated Track Altitude field is used. This can be changed to the Calculated Track Flight Level field by setting the System property com.luciad.format.asterix.cat30.useCalculatedTrackFlightLevel to true.
  • Category 62: By default, the Calculated Track Geometric Altitude field is used. This can be changed to the Calculated Track Barometric Altitude field by setting the System property com.luciad.format.asterix.cat62.useCalculatedTrackBarometricAltitude to true.

Bug fixLuciadFusion

LF-2130
Fixed an issue where the OGC 3D Tiles service could not be created from E57 data containing point cloud data.

Bug fixLuciadFusion

LCD-10089
TLcdSHPModelDecoder2#applyOnInteract2DBounds now correctly considers MultiPoint geometries to be points as well. This makes sure that MultiPoint objects containing only one point will still be visualized, even though a minimum size condition might not be met.

Bug fixLuciadFusion

LCD-11932
Fixed a performance regression in the creation of TLspEditContext that showed up when using the TLspEditController while shapes were selected.

Bug fixLuciadFusion

LF-2093
Fixed an issue that prevented uploaded files from being deleted from disk when removing data in LuciadFusion Studio. This could cause removed data to reappear after uploading new files to LuciadFusion Studio.

2021.0.01

ImprovementLuciadFusion

LCD-11914
TLcdTransformedHeightProvider now avoids evaluating the same geoid twice if the transformation is between geodetic references with only a geoid difference.

ImprovementInfrastructure Standards

LCD-11199
Added more command line options to the Meshup sample. You now have more optional arguments you can pass to the command line to control the resulting output OGC 3D Tiles.

ImprovementInfrastructure Standards

LCD-11731
The TLcdBinzModelDecoder now supports BINZ version 5. This includes the BINZ data created by Hexagon Smart Interop Publisher version 15.

Bug fixLuciadFusion

LCD-11920
The WMTS client now recognizes layer dimensions that specify an ISO 8601 time dimension through the UnitSymbol field instead of the UOM field.

Bug fixLuciadFusion

LCD-11919
Fixed a regression introduced in 2021.0 that caused a NullPointerException when a connection was made with a WMTS server of which the capabilities specified a layer dimension without a UOM field.

Bug fixLuciadFusion

LCD-11899
Fixed an issue with the maven sample project setup script, which could cause compilation failures when there was a space in the path to the sample project.

Bug fixLuciadFusion

LCD-11912
Fixed bug where TLcdCSVModeldeccoder could crash when parsing lon-lat point strings, depending on the default locale.

Bug fixLuciadFusion

LF-2120
Fixed an issue that could cause styles to be duplicated when crawling if deleted file was detection enabled on the crawl job.

Bug fixLuciadFusion

LF-2115
Fixed an issue that caused no intermediate progress to be reported for crawl jobs.

Bug fixLuciadFusion

LCD-11902
Solved a problem decoding GML files to a TLcdDataModel with generic enumerated types, such as String or Object.

Bug fixLuciadFusion

LCD-11875
TLcdXYGridLayer now works correctly when a non-uniform scaling is used.

Bug fixLuciadFusion

LCD-11875
Grids built using TLspXYGridLayerBuilder now work correctly when a non-uniform scaling is used in a 2D view.

Bug fixDefense Symbology

LCD-11928
Fixed an issue where the font-family styling option was not applied to NVG Text objects.

Bug fixDefense Symbology

LCD-11904
Resolved a caching issue in GXY, which caused performance problems when painting NVG models containing many Tactical Graphics.

Bug fixMaritime Standards

You can now re-throw cell warnings in your error handler (ILcdS57InvalidCellExceptionHandler#handleCellWarnings), which will make sure the cell is not loaded.

If you disable TLcdS57UnifiedModelDecoder#ignoreInvalidCells, decoding the entire catalog will fail if you re-throw warnings or errors.

By default, the warnings are logged and not re-thrown, so the cell is still loaded.

Bug fixMaritime Standards

LCD-11894

The S-57 and S-63 decoders now issue a warning when we detect that certain updates are missing. This can happen for example when you have cell GB5X01SW.000 and update file GB5X01SW.002, but not the intermediate update file GB5X01SW.001.

You can inspect the warning either through TLcdS57ModelDescriptor#getWarnings or by registering an error handler on your decoder and implementing ILcdS57InvalidCellExceptionHandler#handleCellWarnings.

If you want to fail the decoding of the particular cell, you can propagate the warning by re-throwing it in ILcdS57InvalidCellExceptionHandler#handleCellWarnings.

2021.0

New featureLuciadFusion

The WMTS service now supports KVP GetFeatureInfo requests. The GetFeatureInfo response is always in GeoJSON format. The GetFeatureInfo operation is listed in the operations metadata of the capabilities and the supported info format is listed for all layers.

New featureLuciadFusion

Support has been added for WMTS GetFeatureInfo requests. The class TLcdWMTSClient has a new method getFeatureInfo to perform the GetFeatureInfo request. This method expects a TLcdWMTSGetFeatureInfoContext parameter, which is a new class that specifies WMTS GetFeatureInfo settings. Additionally, a WMTS model's domain object now implements the new interface ILcdWMTSClientProvider to easily access a TLcdWMTSClient.

New featureLuciadFusion

LuciadLightspeed now has support for the vertical datum Normaal Amsterdams Peil (NAP), as well as the associated EPSG reference EPSG:7415. As a LuciadLightspeed user, this just works for you. You can open, visualize, and use data in this reference or referring to this vertical datum.

New featureLuciadFusion

You can now add custom service types to LuciadFusion. Adding a custom service type allows you to serve geospatial data managed in LuciadFusion Studio using a custom protocol. As a result, you gain access to a vast range of options for getting your data to clients. Custom service types can be used in addition to the built-in service types such as WMS, WFS, OGC 3D Tiles, etc.

Take a look at the com.luciad.fusion.platform.services.configuration package on how to get started with adding a custom service type. The classes in the com.luciad.fusion.platform.repository package contain the repositories necessary to access services, products, data from your custom service endpoint. There is also a detailed tutorial on how to add a custom service type to LuciadFusion.

New featureLuciadFusion

Maven POM files are now provided for LuciadFusion releases. There are Maven POM files available for each product tier (Essential, Advanced, Pro), which depend on all non-optional components of their respective tiers. In addition there are maven POM files for each optional component for each tier.

The product tier POM dependencies are:

Group ID Artifact ID
com.luciad luciadfusion_essential
com.luciad luciadfusion_advanced
com.luciad luciadfusion_pro

The optional component POM dependencies are:

Group ID Artifact ID
com.luciad luciadfusion_database_connectors
com.luciad luciadfusion_google_earth_enterprise
com.luciad luciadfusion_graph_and_routing_engine
com.luciad luciadfusion_terrain_analysis_engine
com.luciad luciadfusion_weather_environment_standards
com.luciad luciadfusion_aviation_standards
com.luciad luciadfusion_infrastructure_standards
com.luciad luciadfusion_maritime_standards
com.luciad luciadfusion_defense_standards
com.luciad luciadfusion_radar_connectors
com.luciad luciadfusion_s63
com.luciad luciadfusion_defense_symbology

New featureLuciadFusion

It is now possible to print the contents of a TLspFXView at high resolution. The newly introduced print() method can be used to generate a print-quality image. The sample class samples.lightspeed.javafx.common.printing.PrintPreview demonstrates how to use this method together with the JavaFX printing API. It also implements a preview of the print result and supports multi-page printing. The print preview can be accessed via a new toolbar button which is available in all JavaFX samples.

New featureLuciadFusion

LuciadFusion Studio now includes an HSPC service type. This service can be used to serve Hexagon Smart Point Cloud (HSPC) data.

New featureLuciadFusion

JavaFX UI components that can be used for map navigation and altering the altitude exaggeration of a 3D view have been added to the API.

New featureAdvanced Raster Services

LuciadFusion Studio now includes an ECWP service type. This service can be used to serve ECW and JPEG2000 data.

New featureAdvanced Raster Services

The MrSID MG4 format is now supported, on 32-bit and 64-bit Windows, on 64-bit Linux and on 32-bit and 64-bit macOS. Support for 32-bit Linux has been dropped, since the latest of the MrSID SDK no longer supports 32-bit Linux. The TLcdMrSIDModelDecoder now supports multispectral images with up to 255 bands and more than 8-bits per band. LiDAR point clouds and password protected files are currently not supported.

ImprovementLuciadFusion

The TLcdRD1918DutchGridReference model reference class has been deprecated, because it uses outdated hardcoded parameters. Where possible, using EPSG or WKT parsing is encouraged, for example:
new TLcdEPSGReferenceParser().parseModelReference("EPSG:28992").

ImprovementLuciadFusion

LCD-11312
TLcdExpressionFactory: a log expression has been added which returns the natural logarithm of its parameter.

ImprovementLuciadFusion

LCD-5200
LuciadLightspeed now has more extensive support for EPSG and WKT encoded references that use a geoid.

ImprovementLuciadFusion

The service resource in the LuciadFusion Studio REST api now has a new property service.endpointUrl. This property contains a url that clients can use to connect to the service.

ImprovementLuciadFusion

LCD-5095, LCD-2134, LCD-6783
LuciadLightspeed now has improved support for working with map scales. The new TLcdMapScale class now allows working with a physical, unitless map scale ratios such as "1:100.000". You can directly set and retrieve them on any ILcdGXYView. For Lightspeed views, you can retrieve the scale from ALspViewXYZWorldTransformation and set it using TLspViewNavigationUtil. TLcdMapScale#createScaleRange is also supported in several places to specify unitless map scale ranges. For more information, refer to the Working with map scales article.

ImprovementLuciadFusion

The layer control UI component used in the JavaFX samples now has the following additional features:
  • Layers can be moved in the tree with drag and drop or buttons.
  • A progress indicator now indicates when a layer is busy.
  • Buttons have been added to toggle selectable, editable and labeled.
The FXLayerControl can be reused in your own application.

ImprovementLuciadFusion

LF-1378
Crawl jobs can now be configured to recrawl all files, even it seems like they haven't changed since the last successful crawl. This can be enabled by setting the crawl job property forceRecrawlFiles to true using the REST API or changing the 'Force Recrawl Files' option of a crawl job to 'Enable' in the web interface. Enable this feature when noticing that some files have changed, but are not being processed again. Note that reprocessing all files will impact time to completion.

ImprovementLuciadFusion

LCD-11631
Various missing read or write locks were added for internal accesses to models. Additionally, a new check was introduced that asserts that the correct locks are taken when accessing an ALcdModel. This check is only enabled when assertions are enabled (vm parameter: -ea) and logs violations as Warnings when it finds any.

ImprovementLuciadFusion

LCD-9280
The WMS client sample now requests the WMS server to return more than 1 result. This is configured in the class samples.wms.client.common.WMSGetFeatureInfoMouseListener using TLcdWMSGetFeatureInfoParameters.Builder.maxFeatureCount.

ImprovementLuciadFusion

LCD-9196
TLspWMSLayerFactory has been added to the API. It uses the LcdService annotation, so it can be picked up by TLcdServiceLoader. The existing TLcdWMSProxyGXYLayerFactory now also uses the LcdService annotation.

ImprovementLuciadFusion

LCD-6652
Corrected the spelling of the method TLcdWMSGetMapRequest.setTransparant to TLcdWMSGetMapRequest.setTransparent. The incorrectly spelled method name remains to exist for now for backward compatibility.

ImprovementLuciadFusion

LF-1511
The background data used in the map preview can now be set to any valid geospatial data. It is no longer required that the data needs to be crawled, uploaded or added to Studio as Data for it to be used as background data. To change the map preview background data in the Studio web application, go to Settings -> Map Preview and set the file path for the data you want to use a background data.

ImprovementLuciadFusion

LF-1481
LuciadFusion will now automatically combine NetCDF data sources that are related into a single Data item instead of having a Data item for every source. For example, a NetCDF file with both u- and v-wind components were previously added as separate Data items, and are now combined into a single Data item. Note this will only happen for newly crawled, uploaded, or added NetCDF data.

ImprovementTerrain Analysis Engine

The TEA sample service has been updated to make use of the LuciadFusion API to add additional service types. TEA services can now be created within LuciadFusion Studio like all other services. This means that the data in a TEA service no longer needs to be configured in a configuration file, but instead uses data available within LuciadFusion Studio.

ImprovementAviation Standards

Improved the visualization of some ICAO icons.

ImprovementDefense Symbology

LCD-11871
TLcdMS2525bGXYEditorProvider/TLcdAPP6AGXYEditorProvider: improved consistency when editing buffer-like shapes. You can now change the width of all these shapes without having to press the CTRL key.

Bug fixLuciadFusion

LCD-11827
A GML application schema returned by the WFS server for a DescribeFeatureType request no longer includes a GML FeatureCollection element and type, because WFS uses its own FeatureCollection.

Bug fixLuciadFusion

LCD-11740, LCD-11742, LCD-11109, LCD-11163, LCD-11175, LCD-11158, LCD-5238, LCD-11156, LCD-11162, LCD-11761, LCD-11752, LCD-11188
DPI and display scaling specific behavior is now handled more consistently across all supported platforms. In addition, the DPI value can now be overridden using the system property -Dluciad.dpi.

Bug fixLuciadFusion

LF-1556
Failed or skipped files will be retried when recrawling. For example, a SHP file may fail to be processed due to a missing REF file. When adding the missing REF file and recrawling the files, the SHP file will be processed again.

Bug fixAdvanced Raster Services

The TLcdMrSIDModelDecoder did not read the least detailed level of a MrSID image. This has been fixed.

Bug fixAdvanced Raster Services

LCD-11683
TLcdMrSIDModelDecoder now properly supports filenames that contain non-ASCII characters.

Upgrade considerationLuciadFusion

LCD-11871
TLcdGXYGeoBufferPainter: you can now change the width of buffers without having to press the CTRL key.

Upgrade considerationLuciadFusion

LCD-11790, LCD-11852
A new version of the JAI ImageIO library is used.
  • This fixes the interpretation of GeoTIFF images with exactly 4 bands. The 4th band was always interpreted as alpha channel.

Upgrade considerationLuciadFusion

The property service.endpointPath of the service resource in the LuciadFusion Studio REST api has been deprecated. We recommended to use the new property service.endpointUrl instead.

Upgrade considerationLuciadFusion

LCD-11749

Microsoft ended its support for Windows 7 and Windows Server 2008. In line with that decision, we now support LuciadLightspeed development and deployment on Windows platforms starting from versions Windows 8.1 and Windows Server 2012.

Upgrade considerationLuciadFusion

LF-1813

Microsoft ended its support for Windows 7 and Windows Server 2008. In line with that decision, we now support LuciadFusion development and deployment on Windows platforms starting from versions Windows 8.1 and Windows Server 2012.

Upgrade considerationLuciadFusion

Upgraded the JDBC drivers to version 42.2.19. PostgreSQL 13 is now supported as a database for LuciadFusion Studio. The Checker Qual library (version 3.5.0) has been added since this is a runtime dependency of this newer version of the PostgreSQL JDBC driver.

Upgrade considerationLuciadFusion

3D data (point cloud or mesh) can no longer be published in a WMS or WMTS service in LuciadFusion. The 3D data was not visible when published in either WMS or WMTS. Please use an OGC 3D Tiles service to publish 3D data.

Upgrade considerationLuciadFusion

The Maven POM files provided with a LuciadLightspeed release have been renamed to follow the Maven artifactId naming conventions.

If you depend on any Lightspeed component in your project's POM file, they will need to be renamed as follows.

Group ID Old Artifact ID New Artifact ID
com.luciad LuciadLightspeed luciadlightspeed
com.luciad Advanced_GIS_Engine luciadlightspeed_advanced_gis_engine
com.luciad Advanced_Raster_Connectors luciadlightspeed_advanced_raster_connectors
com.luciad Aviation_Standards luciadlightspeed_aviation_standards
com.luciad Database_Connectors luciadlightspeed_database_connectors
com.luciad Defense_Standards luciadlightspeed_defense_standards
com.luciad Defense_Symbology luciadlightspeed_defense_symbology
com.luciad Google_Earth_Enterprise luciadlightspeed_google_earth_enterprise
com.luciad Graph_and_Routing_Engine luciadlightspeed_graph_and_routing_engine
com.luciad Infrastructure_Standards luciadlightspeed_infrastructure_standards
com.luciad Maritime_Standards luciadlightspeed_maritime_standards
com.luciad Radar_Connectors luciadlightspeed_radar_connectors
com.luciad Real_time_Engine luciadlightspeed_real_time_engine
com.luciad S_63 luciadlightspeed_s63
com.luciad Terrain_Analysis_Engine luciadlightspeed_terrain_analysis_engine
com.luciad Tiling_Engine luciadlightspeed_tiling_engine
com.luciad Weather_Environment_Standards luciadlightspeed_weather_environment_standards

In addition, POM files are now available for each product tier (Essential, Advanced and Pro). These POM files depend on all non-optional modules available for their respective product tiers.

The new product tier POM files are:

Group ID Artifact ID
com.luciad luciadlightspeed_essential
com.luciad luciadlightspeed_advanced
com.luciad luciadlightspeed_pro

Upgrade considerationLuciadFusion

Some Spring Boot Cloud dependencies have been upgraded from the Milestone version (2.1.0.M1) to the release version (2.1.0.RELEASE). Because of this change we needed to upgrade some of the transitive dependencies of the Spring Boot Cloud dependencies. Here is an overview of the dependency changes:
Group ID Artifact ID Old Version New Version
org.springframework.cloud spring-cloud-netflix-archaius 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-starter-netflix-hystrix 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-netflix-eureka-server 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-netflix-zuul 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-starter 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-starter-netflix-zuul 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-netflix-hystrix N/A 2.1.0.RELEASE
org.springframework.cloud spring-cloud-context 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-netflix-ribbon 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-commons 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-starter-netflix-ribbon 2.1.0.M1 2.1.0.RELEASE
org.springframework.cloud spring-cloud-netflix-eureka-client 2.1.0.M1 2.1.0.RELEASE
org.springframework.boot spring-boot-starter-actuator 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-actuator-autoconfigure 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-starter 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-autoconfigure 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-starter-web 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-starter-aop 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-starter-freemarker 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-starter-json 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework spring-boot-starter-jdbc N/A 2.1.2.RELEASE
org.springframework.boot spring-boot 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-actuator 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework.boot spring-boot-starter-logging 2.1.0.RELEASE 2.1.2.RELEASE
org.springframework spring-context-support 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-webmvc 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-aop 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-beans 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-context 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-core 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-expression 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-web 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-tx 5.1.2.RELEASE 5.1.4.RELEASE
org.springframework spring-jdbc 5.1.2.RELEASE 5.1.4.RELEASE
org.hibernate.validator hibernate-validator 6.0.13.Final 6.0.14.Final
com.netflix.eureka eureka-client 1.9.3 1.9.8
com.netflix.eureka eureka-core 1.9.3 1.9.8
com.netflix.hystrix chystrix-core 1.5.12 1.5.18
com.netflix.hystrix hystrix-javanica 1.5.12 1.5.18
com.netflix.hystrix hystrix-metrics-event-stream 1.5.12 1.5.18
com.netflix.hystrix hystrix-serialization 1.5.12 1.5.18
com.netflix.ribbon ribbon-transport 2.2.5 2.3.0
com.netflix.ribbon ribbon 2.2.5 2.3.0
com.netflix.ribbon ribbon-core 2.2.5 2.3.0
com.netflix.ribbon ribbon-httpclient 2.2.5 2.3.0
com.netflix.ribbon ribbon-loadbalancer 2.2.5 2.3.0
com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.9.7 2.9.8
com.fasterxml.jackson.dataformat jackson-dataformat-cbor 2.9.7 2.9.8
com.fasterxml.jackson.datatype jackson-dataformat-jsr310 2.9.7 2.9.8
com.fasterxml.jackson.datatype jackson-dataformat-jdk8 2.9.7 2.9.8
com.fasterxml.jackson.module jackson-module-jaxb-annotations 2.9.7 2.9.8
com.fasterxml.jackson.module jackson-module-afterburner 2.9.7 2.9.8
com.fasterxml.jackson.module jackson-module-parameter-names 2.9.7 2.9.8
io.micrometer micrometer-core 2.9.7 2.9.8
org.aspectj aspectjweaver 1.9.1 1.9.2

Upgrade considerationLuciadFusion

Due to changes in the dependencies of LuciadFusion we have upgraded our com.fasterxml dependencies in LuciadLightspeed to ensure we depend on the same version across all products.

Here is an overview of the dependency changes:

Group ID Artifact ID Old Version New Version
com.fasterxml.jackson.core jackson-core 2.9.7 2.9.8
com.fasterxml.jackson.core jackson-databind 2.9.7 2.9.8
com.fasterxml.jackson.core jackson-annotations 2.9.5 2.9.8

Upgrade considerationLuciadFusion

LF-2068
Database schema change: a column was added to the Studio database to store the option to force recrawl files (see LF-1378).

Upgrade considerationLuciadFusion

LCD-9196
The TLcdOGCWMSProxyModelDecoder behavior for calling the method decode with just an URL without a data=layerName argument has been aligned with the behavior of the WFS and WCS decoders. In this case the decoder now returns a model with a ALcdWMSProxy configured with the first WMS layer found in the capabilities. Users that do not want this behavior can get a model with an empty ALcdWMSProxy by calling TLcdOGCWMSProxyModelDecoder#setUseEmptyProxyForUrlOnly(true).

Upgrade considerationAdvanced Raster Services

The TLcdMrSIDModelDecoder is no longer supported on 32-bit Linux systems as this is no longer supported by the MrSID decoding SDK.

Upgrade considerationAdvanced Raster Services

The MrSID decoding SDK has been updated to version 9.5.4.

Upgrade considerationDatabase Connectors

Upgraded the PostgreSQL JDBC driver to version 42.2.19. This updated driver adds support for PostgreSQL 13. The Checker Qual library (version 3.5.0) has been added since this is a runtime dependency of this newer version of the PostgreSQL JDBC driver.

Upgrade considerationWeather & Environment Standards

LCD-11540
The TLcdNetCDFModelDecoder#discoverDataSources method now returns multi-band sources for data sources that are related. Previously, all sources were returned as single-band sources. This change required changing the return type to a list of ILcdDataSource instances, since the returned sources can now contain both TLcdNetCDFDataSource and TLcdNetCDFMultiBandDataSource instances. To return all sources as single-band sources as the TLcdNetCDFModelDecoder#discoverDataSources method did previously, set the multi-band creation of the TLcdNetCDFModelDecoder to MultiBandImageCreation.NEVER.

2020.1

2020.1.25

ImprovementLuciadFusion

LCD-11866
Support has been added for an OGC strTrim function in TLcdOGCVendorSpecificFunctions that can trim a String property. This function can be used when querying a model (see ILcdModel#query), when creating an OGC Filter or when creating an SLD style.

ImprovementLuciadFusion

LCD-9858
Support has been added for an OGC Recode function in TLcdOGCVendorSpecificFunctions that can transform a property value to another value. The intended use case is to define an SLD styling property as a function of the contents of a data property. For example, an SLD polygon fill style can be defined that uses a Recode function to map property values to fill colors.

Bug fixLuciadFusion

LCD-11880
When decoding a DTED directory using the TLcdDTEDDirectoryModelDecoder and disposing the model would result in not being able to delete the DTED folder right after. Some resources used within the decoder were not promptly closed after usage.

Bug fixLuciadFusion

LCD-11874
Layers created with TLspXYGridLayerBuilder using a TLcdCartesianReference didn't work correctly, nothing was painted.

Bug fixLuciadFusion

LCD-11770
TLcdSHPModelDecoder now prints a warning when it fails to parse a number property.

Bug fixLuciadFusion

LCD-11873
ALcdCompassNavigationControl: fixed a small inconsistency between the visual highlighting of the compass elements and their actual priorities when receiving mouse events.

Bug fixLuciadFusion

LCD-11860

The caching in the WMS server now takes additional request parameters into account for generated images.

There is also the possibility to configure which additional request parameters must be taken into account when trying to reuse views from the view pool. This is only intended for the case where you have extended the WMS server with one or more non-standard parameters that affect the layer creation.

Bug fixLuciadFusion

LCD-11862
TLspPlotLayerBuilder: fixed a deadlock that could occur in a plot layer when model changes were fired.

Bug fixLuciadFusion

LCD-11677
TLfnClientFactory.createLTSClient now sanitizes the provided LTS URL by removing request parameters reserved by the LTS protocol. This avoids requests with duplicate LTS request parameters, which can lead to request handling errors in a LuciadFusion server.

Bug fixDefense Symbology

LCD-11867
TLcdMS2525bGXYEditorProvider/TLcdAPP6AGXYEditorProvider: Fixed a regression that prevented editing of buffer-like shapes.

2020.1.24

ImprovementLuciadFusion

LCD-11850
SLD text rendering in GXY / Lightspeed now supports disabling label placement conflict resolution (label decluttering). This can be achieved by configuring an SLD vendor option with name conflictResolution and value false on a TLcdSLDTextSymbolizer.

ImprovementRadar Connectors

LCD-11809
TLcdASTERIXLiveDecoder#decodeBlockSFCT could throw an ArrayIndexOutOfBoundsException in case of an ASTERIX record of which the encoded record length exceeds the actual record length. Such a record is now skipped and logged.

Bug fixLuciadFusion

LCD-11803
Fixed a NullPointerException that could occur in some cases when using a TLcdEarthTerrainElevationProvider on sparse raster data.

Bug fixLuciadFusion

LCD-11795
The WFS server could not handle DescribeFeatureType requests for multiple feature types that share the same namespace.

Bug fixLuciadFusion

LCD-11848
Fixed an issue where calling the refresh on a TLcdDatabaseModel resulted in a connection leak when using a connection pooling JDBC driver, such as the Proxool driver.

Bug fixLuciadFusion

LCD-11799
The XML Schema response to a WFS DescribeFeatureType request affecting multiple feature types now uses a more sensible target namespace (one of the feature types' namespaces) instead of always using http://www.opengis.net/gml.

Bug fixLuciadFusion

LCD-11808
The WFS capabilities now list the feature types' namespaces on the root element, which enhances interoperability with 3rd party WFS clients. Additionally, the feature types's namespace prefixes are now always used instead of an automatically determined prefix.

Bug fixInfrastructure Standards

LCD-11840

Fixed a bug where decoding certain Binz datasets would cause the application to crash with a ClassCastException.

2020.1.23

ImprovementLuciadFusion

LCD-11843
The detection of using a fall-back reference has improved in the WMS client painting. In case the map reference is Transverse Mercator and the WMS service supports one of the AUTO (Universal) Transverse Mercator codes (AUTO(2):42001 or AUTO(2):42002) they are used as preferred fall-back reference for the GetMap requests.

ImprovementLuciadFusion

LCD-11825
The TLspSwipeController, TLspFlickerController and TLspPortholeController can now be used in a JavaFX view.

ImprovementInfrastructure Standards

LCD-11834
The 3D Tiles Processor now is more compatible with the OGC 3D Tiles 1.0 standard. It encodes OGC 3D Tiles with asset version 1.0 as a string instead of as a number. Using number as a version caused some issues with 3rd party software. This has now been fixed. On top of that, the 3D Tiles Processor will now encode 3D tiles using "uri" instead of "url".

Bug fixLuciadFusion

LF-2080
The WFS capabilities did not advertise GeoJSON as supported output format for feature types backed by an Oracle, Informix, IBM Db2 or Microsoft SQL Server database.

Bug fixLuciadFusion

LF-2103
TLcdCSWRecordPropertyRetrieverProvider now supports the {http://www.opengis.net/ows}BoundingBox property.

Bug fixLuciadFusion

LCD-11832
The TLcdDEMModelDecoder did not use a custom set ILcdInputStreamFactory everywhere.

Bug fixLuciadFusion

LCD-11833
The WCS GetCapabilities response did not include the title in the service identification section in case of WCS 1.1.

Bug fixLuciadFusion

LCD-11822
Rounded point lists that are outside the projection bounds could cause a NullPointerException when rendered in an ILcdGXYView. This has been fixed.

Bug fixLuciadFusion

LCD-11807
TLcdWKTReferenceParser and TLcdEPSGReferenceParser didn't always correctly take a non-zero prime meridian and a different angular unit into account. This could result in:
  • an incorrect prime meridian shift
  • a prime meridian shift that was applied twice
  • incorrect projection parameters

Bug fixInfrastructure Standards

LCD-11796
Fixed an issue in TLcd3DTilesProcessorBuilder that would cause missing data and holes in some large datasets.

Bug fixInfrastructure Standards

LCD-11697
Fixed an issue that would cause incorrect textures at simplified levels to be incorrect when dealing with repeating textures, or multiple materials for the same object.

Bug fixInfrastructure Standards

LCD-11298
TLcd3DTilesProcessorBuilder no longer logs long data structures when logging with logging level DEBUG. Previously this would cause the console output to flood, causing performance issues with logging enabled. This was especially an issue when using logback classic with its default settings.

2020.1.22

ImprovementLuciadFusion

LCD-11792
SLD raster rendering in GXY / Lightspeed now supports removing the alpha channel from an image. This can be achieved by configuring an SLD vendor option with name removeAlphaChannel and value true on a TLcdSLDRasterSymbolizer.

ImprovementLuciadFusion

LCD-11798
The EPSG database was updated to the latest version: 10.018.

Bug fixLuciadFusion

LCD-11720
When using setApplyGeoidDatums(true) on TLcdDMEDModelDecoder, TLcdDTEDModelDecoder, or TLcdDTEDDirectoryModelDecoder the geoid values where not applied when accessing the data using the imaging API. It was only applied when using the raster API.

Bug fixLuciadFusion

LCD-11743
The AUTO and AUTO2 reference formatters did not check for the false easting and false northing values to be 0.0 for some of the codes. Also the auto equirectangular code resulted in the projection using spherical formulas but this must be the ellipsoidal formulas.

Bug fixLuciadFusion

LCD-11791
Improved the auto-detection of SLD raster normalization intervals by means of a more accurate histogram operation.

Bug fixLuciadFusion

LCD-11785
The SLD Lightspeed implementation now also takes the optional PerpendicularOffset property into account for icon-based line strokes.

Bug fixLuciadFusion

LCD-11786
The SLD Lightspeed implementation now accurately applies the optional PerpendicularOffset property for solid line strokes.

Bug fixAdvanced Raster Services

LCD-11806
Fixed an issue in TLcdGDALModelDecoder that made it fail to recognize certain .IMG files as containing elevation data.

Bug fixWeather & Environment Standards

LCD-11805
Fixed an issue where world-covering datasets decoded with the TLcdNetCDFModelDecoder could be shifted along the longitude axis.

Bug fixDefense Standards

LCD-11710
TLcdNITFModelDecoder: nested NITF segments (with ALVL>0) are now correctly positioned relative to their parents' position.

Bug fixDefense Standards

LCD-11155
Some fill patterns were incorrectly visualized in an ILcdGXYView when using display scaling.

Bug fixMaritime Standards

LCD-11813
Features with complex strokes were not rendered correctly on macOS. This has been fixed.

2020.1.21

ImprovementLuciadFusion

LCD-11769
TLcdEPSGReferenceParser now uses more precise parameters to transform from S-JTSK to WGS 84. This affects to following codes:
  • EPSG:2065
  • EPSG:4156
  • EPSG:4818
  • EPSG:5221
  • EPSG:5513
  • EPSG:5514

Bug fixLuciadFusion

LCD-11789
TLcdLonLatLine and TLcdLonLatHeightLine didn't have correct bounds. They could either be too small or too large. This has now been aligned with the bounds calculation of TLcdLonLatPolyline and TLcdLonLatHeightPolyline, so they have correct and tight-fitting bounds.

Bug fixLuciadFusion

LCD-11787
The order of line and polygon symbolizers within an SLD rule was not always respected during rendering in a Lightspeed view.

Bug fixLuciadFusion

LCD-11777
Fixed a regression caused by SLD enhancement LCD-11733, resulting in the behavior that an SLD PerpendicularOffset was no longer taken into account for basic line styles in a Lightspeed view.

Bug fixLuciadFusion

TLspLayerTreeNodeCellRenderer did not always correctly calculate its enabled state when using a 3D world reference.

Bug fixLuciadFusion

LCD-11768
When using a world reference with a TLcdLambertConformal projection, geometries were sometimes painted incompletely.

Bug fixInfrastructure Standards

LCD-11778
Fixed an IndexOutOfBoundsException that would occur when processing an OBJ that contained multiple object names.

2020.1.20

ImprovementLuciadFusion

LCD-11733
The SLD Lightspeed implementation now supports adding a gap in pixels at the start and/or end of a line geometry. This capability can be enabled on a TLcdSLDLineSymbolizer by configuring the SLD vendor options with name startGap and endGap. Both take a value in pixels that defines the size of the gap.

ImprovementDefense Symbology

LF-2092
Military symbols can now be retrieved with transparency in the affiliation colors. You can now provide an affiliation color as rgba string, as defined in the CSS standards.

Bug fixLuciadFusion

LCD-11739
TLcdGXYIconPainter#paint now sets a default Graphics stroke before painting its icon. This avoids unexpected rendering effects caused by stroke changes from other painters.

Bug fixLuciadFusion

LCD-11767
TLspShapeLayerBuilder: fixed a memory leak that could occur when using a TLspComplexStrokedLineStyle with a text decoration.

Bug fixLuciadFusion

LCD-11765
TLcdWFSProxyModel's builder did not accept a feature type name String containing a prefix.

Bug fixLuciadFusion

LF-2089
Fixed an issue with the Panoramics service where cached models were not cleared on product updates.

Bug fixLuciadFusion

LF-2089
Fixed an issue with the OGC 3DTiles service where cached models were not cleared on product updates.

Bug fixLuciadFusion

LCD-11757
Fixed an issue that prevented decoding GeoPackage files containing a data table with a name that started with a number or contained special characters. This would previously result in an unrecognized token error.

Bug fixLuciadFusion

LCD-11754
TLsp3DIconStyle.ScalingMode.VIEW_SCALING now respects the print feature scale and display scaling.

Bug fixLuciadFusion

LCD-11738
The last ALspController in the controller chain now consumes the JavaFX events after handling them. This solves the issue where tab panes stole the focus of the contained TLspFXView.

Bug fixLuciadFusion

LCD-11748
Using an SLD raster symbolizer containing both a gray channel selection and a color map did not work for floating point elevation data.

Bug fixLuciadFusion

LF-2086
Modified config/application-fusion.production-template.yml autoReloadingOnChange property spacing to assure it is under fusion.studio.webapp.theme to prevent property validation errors.

Bug fixAdvanced Raster Services

LCD-11762
TLcdGDALModelDecoder left files open even after ILcdModel#dispose was called. As a result, decoded files could not be renamed or removed until the JVM process exited.

2020.1.19

ImprovementLuciadFusion

LCD-11741

Bug fixLuciadFusion

LCD-11746
Fixed an issue that prevented the use of multiple SLD geometry functions inside one SLD rule in a Lightspeed view.

Bug fixLuciadFusion

LCD-11745
Fixed a regression that caused the optional SLD geometry functions startPoint and endPoint to be no longer working in GXY views since version 2019.1.01 and beyond.

2020.1.18

ImprovementLuciadFusion

LCD-11736
TLcdWKTReferenceParser now supports "Australian 1984" (and variants) as alias for AGD84.

Bug fixLuciadFusion

LCD-11737
TLcdOGCModelReferenceFormatter and TLcdCRSReferenceFormatter would incorrectly format references similar to, but different from NAD83 as CRS:83.

Bug fixLuciadFusion

LCD-11734
TLcdEPSGReferenceFormatter: WKT strings using the NAD83 (National Spatial Reference System 2011) datum and without TOWGS84 parameter were incorrectly formatted as an EPSG code using an other NAD83 version.

Bug fixLuciadFusion

LCD-11494
The first record in a ShapeFile written by TLcdShpTiler now starts with record number 1, as prescribed in the shapeFile technical specification. Previously, record numbers would start at 0.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

2020.1.17

Bug fixLuciadFusion

LCD-11729
The tiled WMS proxy painter (TLspTiledWMSProxyPainter) made during initialization a single GetMaprequest to the WMS server on the Event Dispatch Thread (EDT) used for the Lightspeed view. This could make the UI of the application unresponsive. This was only noticeable when using a slow WMS server.

2020.1.15

ImprovementLuciadFusion

LCD-11719, LCD-11842
The detection of using a fall-back reference has improved in the WMS client painting. In case the map reference is Mercator it now falls back on Pseudo-Mercator when Mercator is not supported but Pseudo-Mercator is. Vice-verse when the map reference is Pseudo-Mercator falls back on Mercator if needed.

ImprovementLuciadFusion

LCD-10211
It is now possible to create connections with an SQLite database when also decoding GeoPackage or other sqlite based formats. The sqlite driver used by LuciadLightspeed to decode these sqlite formats no longer conflicts with the regular sqlite driver.

ImprovementLuciadFusion

LCD-11706
Improved the visualization of TLcdLonLatBuffer and TLcdLonLatHeightBuffer on GXY views (using TLcdGXYGeoBufferPainter) and 2D Lightspeed views.

Bug fixLuciadFusion

LCD-11725
TLcdMercator and TLcdPseudoMercator: Fixed an issue where points on the date line were transformed incorrectly.

Bug fixLuciadFusion

LCD-11703
TLspLabelPainter and TLspEditController: fix a few small memory leaks. When removing a domain object from a model, that object could sometimes not be garbage collected.

Bug fixAdvanced Raster Services

Fixed bug where decoding a .sid image with the TLcdMrSIDModelDecoder would eventually produce an image with the wrong colors in a GXY view due to incorrect processing of the alpha channel.

Bug fixAdvanced Raster Services

Fixed a threading issue that could lead to a JVM crash when disposing an ECW model.

Bug fixDefense Standards

LCD-11711
TLcdNITFModelDecoder: nested NITF segments (with ALVL>0) now correctly inherit their parents' reference if they don't define one themselves.

Bug fixMaritime Standards

LCD-11666
Fixed an issue when displaying AML data: in some cases, disjoint edges where connected, causing an incorrect display of lines.

Upgrade considerationDefense Standards

LCD-11716
TLcdNITFModelDecoder.decodeImageBounds now has the display and attachment level of the image segment bounds to decode as additional arguments.

2020.1.13

Bug fixLuciadFusion

TLcdCurveConnectorUtil.connectCompositeRing threw an exception when an empty composite ring was supplied.

Bug fixLuciadFusion

Fixed an issue that prevented users from creating more than one instance of TLspExternalView.

Bug fixLuciadFusion

The fallback vector layer factory for GXY views created layers that did not take into account the layer visibility when an out-of-scale red hatching pattern was drawn. This vector layer factory is registered on TLcdServiceLoader with low priority; aligned with TLcdServiceLoader's priority mechanism, it is returned and used when there is no registered layer factory with a higher priority (for instance, a format-specific layer factory) available.

Bug fixAviation Standards

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

2020.1.12

ImprovementLuciadFusion

LCD-11695, LUCY-4921
The TLcdSHPModelEncoder now uses UTF-8 by default for writing DBF files, which supports non-latin text characters as well. It also writes the used charset to a CPG file now.

ImprovementLuciadFusion

LCD-11541
Added new method TLspFXView#getImage. This method returns a snapshot of the view after making sure that it is completely (re-)painted if it was invalidated before.

ImprovementAviation Standards

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

ImprovementInfrastructure Standards

LCD-11580
The 3D Tiles Processing Engine will now automatically fallback to a black color when input textures could not be decoded. Previously this would cause the entire process to abort. Instead an error is logged on the console and the faulty image is replaced with a fallback texture containing a black color.

ImprovementInfrastructure Standards

LCD-11692
The 3D Tiles Processing engine will now automatically pick up material with transparent color and output this in the resulting 3D Tiles dataset. You no longer have to explicitly force it to encode to the png file format.

ImprovementInfrastructure Standards

LCD-11673
TLcdTilesProcessorBuilder#outputPath will now automatically append a file separator if it was not and the end of the output directory string. Previously this would end up with corrupted output datasets.

Bug fixLuciadFusion

LCD-11702
The WMS in the OGC server sample samples.ogc.server.StartOGCServices always advertised world bounds for models that were not of type ILcd2DBoundsIndexedModel - which is for example the case for SQLite-based formats such as GeoPackage. The bounds calculation logic has now been improved to be able to advertise accurate bounds in these cases.

Bug fixLuciadFusion

LCD-11698
TLspIconStyle: fixed a NullPointerException that could occur in very rare occasions.

Bug fixLuciadFusion

LCD-11688
Fixed memory leak in native memory, that was triggered by resizing a TLspSwingView or TLspFXView.

Bug fixLuciadFusion

LCD-11684
Fixed an issue in TLcdGeoPackageModelEncoder that prevented the encoding of vector data with a primary key property that is not of type long.

Bug fixWeather & Environment Standards

LCD-11709
Fixed an exception when trying to visualize some NetCDF data sets. This exception occurred during the creation of a color map when the min and max data values that are estimated for that dataset are equal.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixDefense Standards

LCD-11687
Fixed an issue where NITF 2.10 files with NBPPBV or NPPBH equal to zero could not be decoded, even if NBPR and NBPC are equal to 1.

Bug fixDefense Symbology

LCD-11698
Fixed issue with the hashcode calculation of Direction of Movement arrow icons in that could cause NullPointerException when painting icons in Lightspeed views.

Bug fixInfrastructure Standards

LCD-11595
Fixed an issue in 3D Tiles Processing Engine that would prevent OBJ files from being encoded in temporary cache files coming from multiple sources. This fixes the "Mesh can only have one source path" exceptions thrown when processing large input dataset with many input OBJ files at close proximity.

Bug fixMaritime Standards

LCD-11707
Fixed an issue with selecting S57 area icons in the GXY view. If the icons were anchored, or a-symmetrical, they were difficult to select.

Bug fixMaritime Standards

LCD-11690
Changed the display name of the TLcdS52DisplaySettingssafetyContour property to Safety contour. It used to be incorrectly labeled Shallow contour.

2020.1.11

ImprovementDefense Symbology

LCD-11665
NVG now accepts xml namespaces with added or missing trailing slashes in the URI of the xmlns attribute. For example, the Dublin-Core metadata namespace should be defined as xmlns:dc="http://purl.org/dc/elements/1.1/", but we now also accept xmlns:dc="http://purl.org/dc/elements/1.1".

Bug fixLuciadFusion

LCD-11681
The use of an SLD text symbolizer for raster data was not supported in GXY views.

Bug fixLuciadFusion

LF-2073
Improved the performance of recrawling and updating styles or data that are used in a lot of products.

Bug fixLuciadFusion

LCD-11669
The creation of a property-based OGC filter condition through TLcdOGCFilterFactory.property failed in case of subsequents calls for both GML 2 and GML 3.1 properties. This could cause errors when trying to load and visualize both GML 2 and GML 3.1 data on a map.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-11664
Fixed issue where a point list was cast to a com.luciad.symbology.app6a.model.ILcdRestrictedLengthPointList instead of a com.luciad.symbology.milstd2525b.model.ILcdRestrictedLengthPointList in TLcdEditableMS2525bObject.

Bug fixDefense Symbology

LCD-11670
Fixed the spelling of the security.classification metadata tag (was security.classifcation).

2020.1.10

ImprovementLuciadFusion

LF-2066
Improved speed of data search requests.

ImprovementLuciadFusion

LCD-11650
It is now possible to customize the maximum length of a HTTP GET request sent by the OGC clients, by means of the System property com.luciad.ogc.ows.model.TLcdOWSHttpTransport.maxGetQueryLength. This is mainly relevant for the WMS and WFS clients, which can generate large requests. When the maximum length is reached (default is 2048 characters), a HTTP POST query is used instead if supported by the server. Adjusting the maximum length can be useful to improve interoperability with servers that do not support HTTP POST.

Bug fixLuciadFusion

LCD-11661
Fixed an issue where the undo functionality wouldn't work correctly after modifying a polyline or polygon that was created using a continuous drag motion.

Bug fixLuciadFusion

LUCY-4915
The BlackLime Look and Feel used by Lucy Map Centric and a few samples did not link Copy/Paste behavior to Ctrl+c/v on some platforms.

Bug fixLuciadFusion

LCD-11651
The WMS layer name included in the metadata of each feature in a GeoJSON GetFeatureInfo response was not correct in case the WMS layer combined multiple data sources.

Bug fixLuciadFusion

LF-2069
Setting the resource metadata on a TLcdModelMetadata.Builder object no longer clears the data categories if the resource metadata doesn't contain any.

Bug fixLuciadFusion

LF-2069
Fixed an issue that prevented point cloud or mesh data to be added to an OGC 3D Tiles service if an ISO metadata file was placed alongside the data when it was crawled/added to LuciadFusion.

2020.1.09

Bug fixLuciadFusion

LCD-11645
TLspIconStyle: fixed a NullPointerException that could occur in very rare occasions.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-11646
Fixed an issue in GXY views that could cause a performance regression when configuring a default style for every military object.

2020.1.08

Bug fixLuciadFusion

LCD-11629
The optional gap value specified on an SLD graphic stroke was not properly taken into account in GXY views: it was not used if there was no initial gap configured as well and a stroke's graphic was painted less frequent than possible.

Bug fixLuciadFusion

LCD-11630
TLspLayer#query: when performing queries on a layer from multiple threads a NullPointerException could occur.

Bug fixLuciadFusion

LCD-11604
Fixed UnsupportedOperationException in ILcdGL#glGetActiveUniform().

Bug fixLuciadFusion

LF-2054
Fixed an issue where a connection was being held longer than necessary when deleting a data root. This could case LuciadFusion to run out of database connections under higher load.

Bug fixAdvanced Raster Services

LCD-11635
Fixed issue where encoding panoramas with TLcdLuciadPanoramaModelEncoder failed if a ILcdOGCFeatureIDRetriever was provided.

Bug fixDefense Symbology

LCD-11621
Fixed an issue in GXY views that caused the configured halo style to be ignored for polygon symbols.

2020.1.07

Bug fixLuciadFusion

LF-2058
Fixed an issue where the metadata of a composite dataset could become incorrect after it was updated and crawled. Crawling composite datasets will now be faster initially, but can be slower when recrawling.

Bug fixLuciadFusion

LCD-11470
TLspComplexStrokedLineStyle: when anti-aliasing is enabled it could occur that some pixels on a line were missing near corners.

Bug fixLuciadFusion

LF-2048
Fixed an issue where serving mesh data in an ogc 3D tiles service could result in 404 responses when fetching the b3dm files.

Bug fixS-63

LCD-11617

Fixed an issue where S-63 catalogs were not recognized, and decoded as S-57 catalogs instead, resulting in low-level errors.

This happened when an S-63 catalog had entries for cells (.000 files) that were missing on disk.

2020.1.06

ImprovementInfrastructure Standards

LCD-11615

Added the ability to recognize numeric values in feature metadata in Binz datasets.
In the Binz data format, all feature metadata are stored as String values, even if they represent numerical values. If the metadata reader discovers that for a given metadata key, the values for all features represent a number, the metadata for that key will now be decoded as numbers.
By doing this, we make sure that these numerical values are encoded as binary values in OGC 3D Tiles, and can be used in styling expressions in LuciadRIA.

2020.1.05

New featureLuciadFusion

LCD-11601
The TLcdE57ModelDecoder can now decode panoramic imagery from E57 files.

ImprovementLuciadFusion

LCD-11607
A GeoJSON GetFeatureInfo response now includes the layer name for each encoded feature, to ease traceability between selected features and the WMS layer(s) in which they are contained. This layer name is encoded as a foreign member in the GeoJSON output, aligned with the GeoJSON RFC (https://tools.ietf.org/html/rfc7946#section-6).

ImprovementLuciadFusion

LCD-9953
The method TLcdWMSDataSource.Builder.layer has been renamed to TLcdWMSDataSource.Builder.addLayer to be in line with the other addLayer methods. The former method has been deprecated. The documentation for the methods TLcdWMSDataSource.Builder.addLayer now mention that added layers are placed on top of earlier added layers.

ImprovementLuciadFusion

LCD-11331
The display name for fusion coverage models does no longer contain the server name/address. This aligns the display name with other model descriptors which also do not include the server name/address.

ImprovementAviation Standards

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

Bug fixLuciadFusion

LCD-11448
Fixed bug where a TLspFXView would sometimes disappear after resizing it.

Bug fixAviation Standards

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

Bug fixDefense Symbology

Fixed an issue in GXY views that caused the configured symbology style to be ignored when selecting a symbol in an asynchronously rendered layer.

Bug fixDefense Symbology

Fixed an issue that caused TLcdAPP6AGXYLabelPainterProvider and TLcdMS2525bGXYLabelPainterProvider not to take the configured default style into account for some symbols.

2020.1.03

ImprovementLuciadFusion

LCD-11598
TLcdGeoTIFFModelDecoder uses, in non-strict mode, better default values for user defined ellipsoids for which the corresponding GeoTIFF tags are missing. The default values are based on the WGS-84 ellipsoid.

ImprovementDefense Symbology

LCD-11592
The labeling performance of several tactical graphics in a GXY view has been improved significantly.

ImprovementDefense Symbology

LCD-11582
Ensured all Maritime Control Point (Symbol set 25, code 210000) symbols have a Unique Designation label in APP-6D.

ImprovementDefense Symbology

LCD-11582
Ensured all Maritime Control Point (Symbol set 25, code 210000) symbols have a Unique Designation label in MIL-STD 2525D.

ImprovementDefense Symbology

LCD-11531
Point lists passed to TLcdEditableMS2525bObject.set2DEditablePointList and TLcdEditableAPP6AObject.set2DEditablePoint no longer have to implement the ILcdRestrictedLengthPointList or ILcdRestrictedLengthPointList interfaces.

Bug fixLuciadFusion

LCD-11602
Fixed a potential deadlock in TLspExternalView when navigating in 3D.

Bug fixLuciadFusion

LCD-11599
Fixed bug in TLcdSHPModelEncoder that caused corrupt ShapeFiles when encoding 3D complex polygons.

Bug fixLuciadFusion

LCD-11593
Fixed a rare race condition when using asynchronous layer wrappers that could trigger a NullPointerException.

Bug fixLuciadFusion

LF-2041
Fixed an issue that could result in a deadlock when deleting/updating products and services concurrently if an Oracle database was used for LuciadFusion Studio.

Bug fixAdvanced Raster Services

LCD-11577
Fixed an issue where the Luciad Panoramas had visual defects after encoding specific cubemap input images with TLcdLuciadPanoramaModelEncoder.

Bug fixAdvanced Raster Services

LCD-11586
Fixed issue where the TLcdPegasusModelDecoder failed to decode url-based sources on linux.

Bug fixInfrastructure Standards

LCD-11597
Fixed issue that would occur when encoding OBJ files with multiple repeating textures and metadata. Before this would produce errors in the output batch table, causing certain simplified tiles to be missing when visualized.

Upgrade considerationLuciadFusion

LF-2044
The Studio database was missing several indexes for foreign key columns, which could result in issue LF-2041. The creation of these indexes have been added to the set of database changes, and will be added to the Studio database next time you start up LuciadFusion.

2020.1.02

ImprovementLuciadFusion

LCD-11555
The OGC Filter functions startAngle / endAngle and startPoint / endPoint can now be used without arguments inside an SLD style. While they previously required an argument that pointed to the domain object's geometry, these functions can now automatically find the geometry if the argument is left out.

ImprovementLuciadFusion

LCD-11553
Fixed an issue in TLcdOGC3DTilesModelDecoder where data with no byteOffset would not be loaded. That offset now defaults to 0.

Bug fixLuciadFusion

LCD-11579
TLcdXYGridLayer: the grid origin setting didn't work correctly for grids with non-meter spacings.

Bug fixLuciadFusion

LCD-11579
TLspXYGridLayerBuilder: the grid origin setting didn't work correctly for grids with non-meter spacings.

Bug fixLuciadFusion

LCD-11566
ALcdMeasureProviders created by TLspImageLayerMeasureProviderFactory now properly take the ALcdBandSemantics#getNoDataValue into account. Values equal to the no-data value are not included in the result of ALcdMeasureProvider#retrieveMeasuresAt.

Bug fixLuciadFusion

LCD-11563
Fixed an issue where not all connections to a GeoPackage file were closed after disposing a GeoPackage model.

Bug fixLuciadFusion

LF-2037
Fixed an issue that prevented adding 3D Tiles data to an OGC 3D Tiles service if the data was added using the Add Data functionality. This happened if the root tileset of the 3D Tiles data only referenced other json files. Existing OGC 3D Tiles data that couldn't be added to an OGC 3D Tiles service will need to be refreshed (or removed and then added again) before you can add it an OGC 3D Tiles service.

Bug fixLuciadFusion

LCD-9826
TLspPlotLayerBuilder: fixed an issue where a plot layer would fail to paint some of its data after it received a model change event. Note, however, that the change event will still cause the layer to invalidate and recompute all of its cached state. For data that changes frequently, we therefore strongly recommend using TLspShapeLayerBuilder and TLspParameterizedIconStyle.

Bug fixLuciadFusion

LCD-11549
Fixed an issue that prevented TLcdDataSource objects from being decoded by the TLcdGeoPackageModelDecoder.

Bug fixLuciadFusion

LCD-11514
TLspIconStyle: when using multiple TLspIconStyles, only one icon was taken into account for selection. Thus, an object could only be selected by one of the icons it was styled with.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-11562
Fixed issue where part of the Direction of Movement arrow was not painted in Lightspeed 2D views.

Bug fixDefense Symbology

LCD-11510
The military icon offsets are now also applied in 3D views. The offset can be configured using the methods ILcdMS2525bStyle.setOffset and ILcdAPP6AStyle.setOffset.

Bug fixDefense Symbology

LCD-11557
Fixed issue in Lightspeed views where the arrow stroke of the "Direction of Attack For Feint" symbol was drawn past the arrow tip.

Bug fixDefense Symbology

LCD-11544
Fixed issue where MIL-STD-2525 C icon symbols with the 'Joker' affiliation were always painted with a black and white outline instead of a black outline.

2020.1.01

ImprovementAdvanced Raster Services

LCD-11523
Errors while fetching pixel data from an ECW file were silently ignored, which could result in black tiles appearing on the map. This will now result in an IOException instead.

ImprovementInfrastructure Standards

LCD-11532

When decoding Binz data, and no georeference information can be found, the TLcdBinzModelDecoder will use a cartesian reference as fallback. If no reference information can be found next to the input data, the decode method will now load the data in its original, non-georeferenced coordinate system, instead of failing.
Note: Data that is decoded in its original coordinate system, can not be visualized on a geographical map. The dataset must be geo-located with an external tool, after conversion has been done.

ImprovementS-63

LCD-11543
Fixed an issue where cell permit subscription expiry date warnings (SSE 15 and SSE 20) didn't show up when there were cell permits in the old ENC.PMT format. This ENC.PMT file doesn't contain the necessary subscription information, while the PERMIT.TXT does. Now, the permits from the PERMIT.TXT file take precedence over those from the ENC.PMT file.

Bug fixLuciadFusion

LCD-11534
Fixed an issue related to the previous SLD fix LCD-11421, which caused that the SLD graphic size setting was not always taken into account for world-sized SVG icons.

Bug fixLuciadFusion

LF-2034
Fixed an issue in the LuciadFusion Studio CSW server causing a CSW dc:date query to fail.

Bug fixLuciadFusion

LF-2031
Added missing 'Panorama' category to the possible Product types. Additionally, empty products, which were previously categorized as 'Unknown', will now be categorized as 'Empty'. In existing products, these changes will only be apparent upon an update of their product contents.

Bug fixLuciadFusion

TLcdLonLatGeoBuffer#setJoinStyle changed the end cap style. This has been fixed.

Bug fixAviation Standards

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

Upgrade considerationLuciadFusion

LF-1964
The http method is now included when http requests to LuciadFusion are logged. Important to note is that the fusion.logback.xml has been updated to use a different logger for requests. Make sure you use the updated logback when upgrading LuciadFusion.

2020.1

New featureLuciadFusion

The LuciadFusion documentation now contains a dedicated section on creating a configuration with multiple servers in a failover and/or load balancing scenario.

Refer to the Multi-node section of the LuciadFusion Platform documentation for detailed instructions.

New featureLuciadFusion

New featureLuciadFusion

Raster layers now support bicubic interpolation, which greatly improves the image quality at high zoom levels. Bicubic filtering is enabled by setting the interpolation type of TLspRasterStyle to ELcdInterpolationType.CUBIC.

New featureLuciadFusion

The LuciadFusion Studio web app now allows users to add Data or Styles directly without the need for the source files to be part of a Data Root. This can be done clicking the ADD DATA or ADD STYLE on the DATA or STYLES page and providing the file path to the source file of the Data or Style. The Data or Style can be updated by clicking the REFRESH button on the detail page of the Data or Style. Data added directly can also be removed by clicking the REMOVE button.

New featureLuciadFusion

LuciadFusion administrators have the option to disable the advanced indexing of data. This may affect the performance of searches in the Studio UI but makes it possible to deploy Studio in multi-node mode. See configuration file application-fusion.common.yml.

New featureLuciadFusion

The LuciadFusion Studio REST API now allows users to add Data or Styles directly without the need for the source files to be part of a Data Root. This can be done by supplying the path of the source file for the Data or Style to Studio through the REST API. Operations to update and remove Data or styles that were added directly have also been added to the REST API.

More specifically, the following additions have been made to the REST API:

  • POST /api/data: allows Data to be added directly to Studio.
  • POST /api/styles: allows Styles to be added directly to Studio.
  • PUT /api/data/{id}/refresh: allows Data to be updated based on the changes made to the source file(s).
  • PUT /api/styles/{id}/refresh: allows Styles to be updated based on the changes made to the source file.
  • DELETE /api/data/{id}: allows Data to be removed from Studio.
  • DELETE /api/styles/{id}: allows Styles to be removed from Studio.

You can try out these new operations in the API Console, available at /api/console of a running Fusion development server. You can read in more detail about all the operations in the Developer's guide, available at /api/documentation.

Users will notice that adding certain Data directly to LuciadFusion Studio will be much quicker than crawling if the Data consists of many individual files (e.g. OGC 3D Tiles). This is because adding Data directly to LuciadFusion does not require evaluating all individual files.

New featureLuciadFusion

TLcdGeoPackageModelEncoder and TLcdGeoPackageModelDecoder now support the GeoPackage 1.1, 1.2.1, and the 1.3.0 specifications.

New featureLuciadFusion

You can now decode and visualize MBTiles files with image tiles in Lightspeed and GXY views, and LuciadFusion WMS/WMTS services.

For more details, see:

New featureAdvanced Raster Services

Data formats that contain panoramic images can now be decoded and served with LuciadFusion for visualisation in LuciadRIA.

Out-of-the-box, the Luciad products support reading panorama data from from E57 files and Pegasus spherical image tracks.

For unsupported formats, the API provides means to create custom data models. See packages com.luciad.panorama.model and com.luciad.panorama.transformation.

The API provides a way to export any valid panorama model to a standardized CubeMap model. See TLcdLuciadPanoramaModelEncoder for more information. The CubeMap model can be served with LuciadFusion as a Panoramics service.

cubemap
Example of a cubemap created from panoramic image data

For more details, see the Panoramic images reference guide in the documentation.

New featureAdvanced Raster Services

LuciadFusion Studio now includes a Panoramics service. This service can be used to serve panoramic image data. Panoramic image data is automatically preprocessed into the Luciad Panorama Format.

New featureDefense Symbology

All APP-6D symbols are now supported.
APP-6D space debris
The APP-6D symbology now supports all symbols, such as the space debris icons shown here.

ImprovementLuciadFusion

TLcdGXYCompositeCurvePainter now paints the entire composite shape in a single pass, retrieving the TLcdGeneralPath or TLcdAWTPath from the subpainters. This allows better visual results in combination with complex line styles.

ImprovementLuciadFusion

You can now also load image data from E57 files.

To do this you will need the LuciadFusion "Advanced Raster" option.

You cannot use TLcdE57ModelDecoder directly for this. Please refer to the LuciadFusion "Panoramic image data" documentation for details.

ImprovementLuciadFusion

It is now possible to format or parse 2D and 3D TLcdCartesianReference instances as WKT using the TLcdWKTReferenceFormatter or TLcdWKTReferenceParser classes respectively.

ImprovementLuciadFusion

The new class TLcdGARSPointFormat allows easy conversion of GARS strings to lon lat points and vice versa.

ImprovementLuciadFusion

Added ILcdEditableTimeBounds#setToUnion to easily include another time interval in a time bounds object.

ImprovementLuciadFusion

LCD-8112
Improved the way TLcdGeoJsonModelDecoder automatically constructs a TLcdDataModel. It now detects nested properties objects and creates separate data types for them as well.

ImprovementLuciadFusion

To simplify the sample code, some exotic GXY touch samples have been removed (multi-edit, multi-view, multi-user, gestures).

ImprovementLuciadFusion

TLcdGXYStampLabelPainter: deprecated the setGXYInteractiveLabelProvider method to avoid confusion with the TLcdGXYInteractiveLabelsController.

ImprovementLuciadFusion

LCD-10513
Improved compatibility with JDK 9 and higher by removing illegal reflective access calls from the API and sample code.

ImprovementLuciadFusion

LCD-11207
ILcdGXYController now has a getLayered method to add temporary layers to the view. When the controller is active, the layers are painted and the view's label placer takes those layers into account. The TLcdAdvancedMapRulerController now makes use of this if it's not configured to add a measurement layer to the view.

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-2941, LCD-9819, LCD-10478, LCD-10658, LCD-10916, LCD-10922, LCD-11186, LCD-11445, LCD-11480
The visualization of several tactical graphics in a GXY view has been improved significantly. The GXY visualization is now more accurate and consistent with the Lightspeed visualization. Rendering performance has been improved as well, especially when zoomed in closely or when using halo rendering.

ImprovementDefense Symbology

TLcdEditableAPP6AObject and TLcdEditableMS2525bObject now expose their buffer width as a modifier when appropriate, similar to the speed and movement direction modifiers.

ImprovementInfrastructure Standards

TLcd3DTilesProcessorBuilder: Added support for metadata when processing OBJ mesh files. This metadata can be used for selection. By default every single OBJ processed by the 3D fusion engine will have a unique id. On top of that, if the OBJ file contains grouping information, every single group will also get a unique id.

The unique id is stored as an integer in the batch table of the produced 3D Tiles dataset.

Next to this, the source file and group name are also stored in the batch table.

ImprovementInfrastructure Standards

Added the ability to customize what metadata ends up in a dataset processed by TLcd3DTilesProcessorBuilder.

Have a look at the ILcd3DTilesProcessorMetadataMapper, which can be implemented using the TLcd3DTilesProcessorBuilder#metadataMapper method.

The details on how to use this are described in the customize metadata guide.

ImprovementInfrastructure Standards

LCD-11385
TLcd3DTilesProcessorBuilder can now preserve mesh borders during mesh simplification. This feature, when activated, improves the visual appearance of low quality LODs with a minor computation cost. Refer to the preserveBorders method for more information.

ImprovementInfrastructure Standards

LCD-11368

TLcd3DTilesProcessorBuilder can now configure the number of vertices and the texture size for individual tiles.

We also decreased the default number of vertices and texture size for enhanced performance. Refer to the verticesPerTile and textureSize methods for more information.

On top of that, we also added an option to automatically drop geometrically complex objects in their entirety on simplified levels. You can find this option in the method TLcd3DTilesProcessorBuilder.dropSmallComplexParts().

ImprovementInfrastructure Standards

TLcd3DTilesProcessorBuilder: improved the Clustering simplification algorithm in terms of speed and visual result.

Bug fixDefense Symbology

LCD-11518
Fixed issue with "Boundaries - Line" symbol where the labels would not be attached on the polyline when zooming in.

Bug fixDefense Symbology

LCD-11355
Disabled the Leadership Indicator modifier for APP-6D Control Measure symbols. This SIDC modifier would operate on the same SIDC position as the Echelon modifier, so having them both enabled would cause unexpected behaviour.

Upgrade considerationLuciadFusion

All date-time properties used in the LuciadFusion Studio REST API now conform to RFC 3339. This means that a date-time property will now include a time-offset. The time-offset will be based on the time zone of the machine that LuciadFusion Studio runs on. If e.g the creationTime of a product was previously 2020-01-01T00:00:00.000 and LuciadFusion Studio is running on a machine in the CET timezone, then the creationTime returned by the REST API is now 2020-01-01T00:00:00.000+01:00. A creationTime that was previously 2020-08-01T00:00:00.000 will now return 2020-08-01T00:00:00.000+02:00 on that same machine.

Upgrade considerationLuciadFusion

LCD-11352
The Jaxen and Batik libraries have been upgraded to version 1.2.0 and 1.11, respectively. This improves compatibility with JDK 11.

Upgrade considerationLuciadFusion

The optional ArcSDE component has been removed from the Tiling Engine module as it has been discontinued by Esri as of ArcGSI 10.3. Consequently, ArcSDE data sources can no longer be preprocessed using Tiling Engine.

Upgrade considerationLuciadFusion

The optional ArcSDE component (com.luciad.format.arcsde) has been removed from the product after being deprecated since the 2016.0 release.

This component provided support for visualize data from an ESRI ArcSDE. However ArcSDE has been discontinued by Esri as of ArcGIS 10.3 in 2015, and you cannot buy it anymore.

As we're not aware of any customers using ArcSDE anymore, we removed it from all our products including LuciadFusion and Lucy. Consult the release notes of those products for more details.

Upgrade considerationLuciadFusion

The SQLite library has been updated to version 3.31.1.

Upgrade considerationLuciadFusion

The library libgpkg has been updated to version 1.0.1 to support newer versions of the GeoPackage specification.

Upgrade considerationAdvanced Raster Services

LCD-11435, LCD-11437
The third-party library 'GDAL' was updated to version 3.1.2 and has its PDF driver enabled. With this update, the TLcdGDALModelDecoder can now decode Geospatial PDF files. This is not supported on Linux 32-bit platforms, or Linux distributions that still use the old ABI (such as RHEL 7).

Upgrade considerationDefense Symbology

LCD-11404
The following Military Symbology classes have been removed:
  • ALcdMS2525bIconProvider
  • TLcdMS2525bIconProvider
  • TLcdMS2525bSelectionIconProvider
  • TLcdEditableMS2525bUnitCustomizer
  • TLcdEditableMS2525bUnitBeanInfo
  • ALcdMS2525bModifier
  • TLcdMS2525bAffiliationModifier
  • TLcdMS2525bCountryModifier
  • TLcdMS2525bEchelonModifier
  • TLcdMS2525bMobilityEquipmentModifier
  • TLcdMS2525bOrderOfBattleModifier
  • TLcdMS2525bStatusModifier
  • TLcdTextModifiersPanel
  • TLcdMS2525bGXYLayerFactory
  • TLcdMS2525bUnitIconPainterEditor
  • TLcdMS2525bUnitNewControllerModel
These API classes have been deprecated for more than a decade and have not been maintained since.

2020.0

2020.0.16

ImprovementLuciadFusion

LCD-11493
GXY XY grids can now also define the origin of the grid: the point at which the grid has coordinate (0.0, 0.0). See TLcdXYGridStyle.Builder#origin

ImprovementLuciadFusion

LCD-11493
Lightspeed XY grids can now also define the origin of the grid: the point at which the grid has coordinate (0.0, 0.0). See TLspXYGridStyle.Builder#origin

ImprovementLuciadFusion

LCD-11507
The KML label styler no longer processes TLcdKML22Placemark objects without a name. This will improve performance for files with many placemarks.

ImprovementLuciadFusion

LCD-11492
The construction of an evaluator for a TLcdOGCFilter contained some expensive log, error and debug messages that were always created, even when they were not logged. This has a negative impact on the performance. Those expensive calls are now only done when the resulting message is actually used.

ImprovementAviation Standards

LCD-9619
TLcdAIXM51ModelDecoder now supports decoding AIXM 5.1.1 data.

ImprovementAviation Standards

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

ImprovementInfrastructure Standards

LCD-11351
Transparent textures now keep their transparency info in the output OGC 3D Tiles dataset. Previously the transparent pixels would be rendered against a white background. Now the rendering can be configured specifically in a client. Note: Make sure that if you want to preserve transparent textures, you set TLcd3DTilesProcessorBuilder.forcePNGEncoding() to true.

ImprovementInfrastructure Standards

LCD-11499
Added a safeguard to prevent a StackOverflowError from occuring when a very large number of points maps to the exact same location. We now cap the depth of our spatial acceleration structure, and log a warning when to many levels have been created. This usually indicates a problem with the data.

Bug fixLuciadFusion

LCD-11524
TLcdGXYRoundedPointListPainter: fixed a sensitivity problem when trying to insert a new point on a segment.

Bug fixLuciadFusion

LCD-11516
Fixed the issue where using touch in a 3D JavaFX view to create a polyline by dragging your finger on the screen would cause a nullpointer issue.

Bug fixLuciadFusion

LCD-11502
OGC filters: the performance regression when creating an evaluator for a filter (introduced by the enhancement LCD-11278) is now fixed.

Bug fixLuciadFusion

LCD-11500
When using the TLspTouchNavigateController without enabling combined gestures, rotating the map in 2D could feel choppy.

Bug fixLuciadFusion

LF-2018
Fixed the ClassNotFoundException exceptions that would occur when running the application or processing a point cloud data after LuciadFusion was obfuscated using the deployment script.

Bug fixLuciadFusion

LCD-11496
Exceptions thrown by controllers used in TLspFXView are now catched and logged by the view. Because of a bug in the JDK (JDK-8199673), the internal state of JavaFX could break when errors where thrown in event handlers. This sometimes occured when using touch controllers.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-11475
Fixed the label positions of several Meteorological line symbols in APP-6C, APP-6D and MIL-STD 2525D when painted in a GXY view.

Bug fixRadar Connectors

LCD-11490
TLcdASTERIXLiveDecoder#decodeBlockSFCT could throw an ArrayIndexOutOfBoundsException in case of an ASTERIX data block that defines a zero length. A zero length is now interpreted as the end of the data stream.

2020.0.15

ImprovementLuciadFusion

LCD-11488
Fixed an issue in the OGC 3DTiles encoding where references to the same texture would be duplicated, resulting in above necessary memory usage.

ImprovementLuciadFusion

LF-1905
The Redoc library is now included with LuciadFusion which makes it possible to view the REST API Developer Guide without an internet connection.

Bug fixLuciadFusion

LCD-11489
TLcdGXYNewController2, TLcdAdvancedMapRulerController, and ALcdGXYSmartController did not remove their actions from the view's ActionMap.

Bug fixLuciadFusion

LCD-11484
TLcdComplexPolygonContourFinder et al. now perform proper geodetic interpolation between points if necessary. This fixes issues with contour finding on data that crosses the date line or lies close to the poles.

Bug fixLuciadFusion

LCD-11479
TLspLabelPainter: labels that are updated often would sometimes disappear temporarily.

Bug fixLuciadFusion

LUCY-4900
Fixed issue where the TLspSelectController would not handle a mouse release event correctly after it consumed the event.

Bug fixLuciadFusion

LCD-11482
Calling TLspLonLatGridLayerBuilder#model caused the spacingRange settings to be ignored.

Bug fixWeather & Environment Standards

LCD-11485
TLcdGRIBModelDecoder sometimes couldn't decode GRIB files with longitude bounds of [0, 360]

Bug fixWeather & Environment Standards

LCD-11485
TLcdNetCDFModelDecoder sometimes couldn't decode GRIB files with longitude bounds of [0, 360]

2020.0.14

Bug fixLuciadFusion

LF-2011
Fixed an issue that prevented the values for Heap used and Nonheap used to be drawn in the graphs on the status page.

Bug fixAviation Standards

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

2020.0.13

ImprovementLuciadFusion

LCD-11457
Fixed a bug where TLcdEllipsoidalConstructiveGeometry could not deal with TLcdSHPPolygonZ.

ImprovementLuciadFusion

LCD-11438
It is now possible to define a lon lat grid using a different geodetic datum than WGS84 in a Lightspeed view. See TLspLonLatGridLayerBuilder#createModel.

ImprovementLuciadFusion

LCD-11454
Added GML decoding/encoding support for ILcdDataModel instances with java.time.Instant property values.

ImprovementS-63

LCD-11453
The ECDIS S-63 decoder can now always open the IHO S-63 demo dataset, which is also delivered with our release sample data. Before, you could not open this dataset if your Luciad license contained a specific (non-demo) User Permit.

Bug fixLuciadFusion

LCD-11452
When adding a grid layer with a non default ALspLayerStyle to a Lightspeed view, it was not painted.

Bug fixLuciadFusion

LCD-11436
Fixed an issue in the OGC 3DTiles encoding where textures would be encoded multiple times, resulting in an unnecessary large size of the result files.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-11450
The MIL-STD 2525d "Probable Line of Deployment" symbol (symbol set 25, code 141200) did not have the correct stroke when visualized in a Lightspeed view.

Bug fixDefense Symbology

LCD-11418
Added missing text modifier labels for the following APP6-B symbols:
  • 1.X.4.5.1 - S*S*ED----***** - Ditched Aircraft
  • 1.X.4.5.2 - S*S*EP----***** - Person in Water
  • 1.X.4.5.3 - S*S*EV----***** - Distressed Vessel
  • 1.X.4.6.1 - S*S*ZM----***** - Sea Minelike
  • 1.X.4.6.2 - S*S*ZN----***** - Navigational
  • 1.X.4.6.3 - S*S*ZI----***** - Iceberg

Bug fixInfrastructure Standards

LCD-11447

Fixed a bug where invalid data inside a Binz file could make the decoder fail.
The decoder should handle all valid elements, and skip the invalid ones.

Upgrade considerationLuciadFusion

LCD-11443

When evaluating an OGC filter through the TLcdOGCFilterEvaluator, the ILcdPropertyRetrieverProvider will now cache and re-use the created ILcdPropertyRetriever instances which results in improved performance.

Since the introduction of LCD-11278 the ILcdPropertyRetrieverProvider is queried more often. By introducing caching, there is no performance penalty anymore.

This is achieved by decorating the property retriever provider which is passed in the constructor of the TLcdOGCFilterContext. The result is that the corresponding getter returns an instance which isn't the same as the one which is passed into the constructor.

Upgrade considerationLuciadFusion

LCD-11443

When visualizing a Lightspeed or GXY layer using SLD the ILcdPropertyRetrieverProvider will now cache and re-use the created ILcdPropertyRetriever instances which results in improved performance.

This is achieved by decorating the property retriever provider which is passed in the constructor of the TLcdSLDContext. The result is that the corresponding getter returns an instance which isn't the same as the one which is passed into the constructor.

2020.0.12

ImprovementLuciadFusion

LF-2006
LuciadFusion Studio will now try to re-open the lucene index if it got closed due to an error.

Bug fixLuciadFusion

LCD-11425
In a Lightspeed view, imagery with an IndexColorModel could sometimes be visualized with incorrect colors.

Bug fixLuciadFusion

LF-2007
Fixed an issue where a completed preprocess job would fail to update its status if it had been resumed after a restart of LuciadFusion Studio.

Bug fixLuciadFusion

LF-1997
Fixed an issue where CSW queries on certain properties (e.g. CreationDate) would incorrectly return zero results.

Bug fixAdvanced Raster Services

LCD-11320
Fixed an issue that would cause the JVM to crash when loading the ECW native libraries on macOS Catalina with recent builds of OpenJDK.

2020.0.11

Bug fixLuciadFusion

LCD-11422
The TLcdWMSDataSource now checks that a layer name (id) is passed which is either a null value or an empty value. An exception is thrown to prevent creation of an invalid WMS data source.

Bug fixLuciadFusion

LCD-11421
The SLD graphic size setting was not taken into account for world-sized SVG graphics.

2020.0.10

ImprovementLuciadFusion

LCD-11392
The WCS service now uses a non-persistent cache for tiled GetCoverage requests, similar to the existing capability in WMS and WMTS services. This cache makes sure that subsequent tile requests are handled much faster, improving the performance and scalability of the WCS service when using tiled requests. The tile cache settings (disk cache size, memory cache size, ...) for WCS, WMS and WMTS can be configured in config/application-fusion.common.yml.

ImprovementLuciadFusion

LCD-11392

The WCS server now uses a non-persistent cache for tiled GetCoverage requests. This cache makes sure that subsequent tile requests are handled much faster, improving the performance and scalability of the WCS server when using tiled requests. See ALcdOGCWCSCommandDispatcherFactory for more information and configuration options.

This implies that for data that changes dynamically, extra care needs to be taken to make sure caches are invalidated. To this end, the API ILcdCoverageOffering#getUpdateSequence and TLcdDefaultCoverageOffering#setUpdateSequence is introduced to indicate that a WCS coverage has changed. By default, the implementations of these methods (mostly) assume static data/coverages. For WCS servers that serve data that changes over time (for example data updates), these methods should be used correctly. Note that the LuciadFusion Platform already takes care of this. An alternative is to disable the caches.

Bug fixLuciadFusion

LCD-11397
When requesting application/json the result of GetFeatureInfo was limited to features from the first layer. Now all features are returned within the GeoJSON response. The geometries of the features are all converted to WGS-84.

Bug fixDefense Symbology

Fixed the SIDC code for the APP-6D and MIL-STD 2525d civilian "Spy" symbols (symbol set 11, code 110800).

2020.0.09

ImprovementLuciadFusion

LCD-11413
TLcdCartesianReference now implements the loadProperties and writePropertiesSFCT methods. This allows this reference to be written to file using TLcdModelReferenceEncoder, and to be read back using TLcdModelReferenceDecoder.

ImprovementLuciadFusion

TLcdDurationFormat now uses the same default Locale as the JDK (Locale.getDefault(Locale.Category.FORMAT)).

ImprovementLuciadFusion

LCD-11388
A new method getModelReferenceFormatter() has been added to TLcdWFSClientModelEncoderFactory to ease access to the model reference formatter property in extensions. Additionally, the factory method ALcdOGCWFSCommandDispatcherFactory#createClientModelEncoderFactory now configures a default model reference formatter on created instances using the model reference formatter returned by ALcdOGCWFSCommandDispatcherFactory#getModelReferenceFormatter().

ImprovementLuciadFusion

LCD-11395
When calling TLcdE57ModelDecoder.decodeModelMetadata the bounds and resource metadata will only be calculated when accessed. This means that the whole model doesn't need to be decoded anymore to get other parts of the metadata like the model reference.

ImprovementLuciadFusion

LCD-11395
The bounds and resource metadata of TLcdModelMetadata will now only be computed during first usage of respectively getBounds and getResourceMetadata.

ImprovementLuciadFusion

LF-1991
The LuciadFusion Studio REST API Data object now contains a categories property. This is a list of categories describing the different kinds of data contained in the Data.

Bug fixLuciadFusion

LCD-11402
Fixed potential deadlock when using a TLspBalloonManager in a TLspSwingView.

Bug fixLuciadFusion

LCD-11412
ALspSwingLabelStyler would paint Swing labels with incorrect letter-spacing when using a display scaling value other than 100%.

Bug fixLuciadFusion

LCD-11401
TLcdWKTReferenceFormatter didn't correctly format the axes for compound references with both a horizontal and vertical datum.

Bug fixLuciadFusion

LCD-11401
TLcdWKTReferenceParser didn't correctly parse the axis information for compound references with both a horizontal and vertical datum.

Bug fixLuciadFusion

LCD-11405
TLspLabelLocations could throw a NPE when calling the updateLabelLocations with a null label location for a non-existing label.

Bug fixLuciadFusion

LF-2001
Fixed issue with WFS GetFeature requests returning an error when 2 typenames from the same product were specified.

Bug fixLuciadFusion

LCD-11393
Fixed an issue where tiles from a geopackage were painted at the wrong place and scale if the row and column count of the tile matrix didn't double every zoom level.

Bug fixLuciadFusion

LCD-11187
Improved touch event support in Swing/AWT based GXY and Lightspeed views when using display scaling/HiDPI displays on Java 11.

Bug fixLuciadFusion

LCD-11386

OGC filters: the changes made for LCD-11278 introduced a performance regression for the evaluation of a filter with nested OR or AND conditions. This performance regression is now avoided, unless you're using an or condition nested inside an and condition (or vice-versa).

Bug fixLuciadFusion

LCD-11389
The WFS server's GeoJSON feature encoding support (provided by TLcdWFSClientModelEncoderFactory) now uses the ILcdOGCFeatureIDRetriever of the requested feature type to uniquely identify objects.

Bug fixLuciadFusion

LCD-11382
When using the TLspCreateController, MouseEvents with id MOUSE_RELEASED can not start creation anymore. This could cause issues with some editing handles. Note that MouseEvents with MOUSE_MOVED or MOUSE_PRESSED can still start creation.

Bug fixLuciadFusion

LF-1981
Corrected the REST API specification that incorrectly marked some properties as having the date-time format.

Bug fixDefense Symbology

LCD-11387
Enabled all required amplifiers for the "Air Missile" symbol set for the APP-6D and MIL-STD 2525d symbologies.

2020.0.08

ImprovementLuciadFusion

LCD-11376
Made the TLspEditController more robust in cases where the edit controller was removed from the view when still editing objects.

ImprovementLuciadFusion

LF-1979
Studio's catalog server now supports OpenSearch queries with time and geometry parameters.

Bug fixLuciadFusion

TLcdGML3xEnvelope is now undefined if it does not have an upper or lower corner.

Bug fixLuciadFusion

LCD-11373
TLcdDTEDModelDecoder#decodeModelMetadata can now handle DTED files with non-standard source names.

Bug fixLuciadFusion

LCD-11372
TLspKeyActionController will not request focus anymore when the mouse only hovers over a JavaFX view.

Bug fixLuciadFusion

LCD-11358
It is now possible to fit on topocentric-referenced models.

Bug fixLuciadFusion

LF-1975
Fixed an issue where concurrently adding a lot of products to the same service could result in SQL Server reporting a deadlock.

Bug fixLuciadFusion

LF-1963
Fixed an issue where files were marked as skipped even if they were successfully crawled. This occurred when those files were marked as failed in a previous run.

Bug fixLuciadFusion

LF-1960
Fixed an issue that allowed two products that have the same name to be added to the same service. Now, the last product with the same name that is added is kept. This caused a Duplicate key error when requesting the layers or feature types of that service.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-11356
Fixed issue with arc symbols where the start and end angles were interpreted as angles after rotation instead of angles before rotation, as the standard specifies.

Bug fixInfrastructure Standards

LCD-11377
TLcd3DTilesProcessorBuilder: Fixed an issue where processing an OBJ would result in a "too many files open" exception.

2020.0.07

ImprovementLuciadFusion

LCD-11361
The default WFS model decoder TLcdWFSModelDecoderDecorator now allows to configure whether the interpolation of linear GML elements need to be geodesic in case of a geodetic reference, through the newly introduced methods setLinearElementsUseGeodesicInterpolationForGeodeticSrs and isLinearElementsUseGeodesicInterpolationForGeodeticSrs. This impacts the GML elements LineString, LineStringSegment and LinearRing. Although these GML elements conceptually represent geometries with a linear interpolation, they are often used to represent geometries with lon/lat coordinates and a geodesic interpolation. The default value of this property is true, for optimal interoperability with 3rd party WFS solutions.

ImprovementLuciadFusion

LCD-11354
TLcdOSGBModelDecoder now supports OSGB version 97.

Bug fixLuciadFusion

LCD-11303
The WFS server could not correctly cope with custom models in which the content of the used TLcdDataType could change at runtime (for instance, triggered by an additional request property, a user role, ...).

Bug fixLuciadFusion

LCD-11342
In case of a WFS request including an OGC Filter 1.x with GmlObjectId or FeatureId elements, the WFS server did not automatically translate this into an OGC Filter with a condition. Aligned with the API documentation of TLcdOGCFilter, this is now addressed by translating the received OGC Filter into a TLcdOGCFilter with a TLcdOGCResourceIdsOperator condition. The default filtering logic in the WFS server was not affected by this bug; it is only of relevance when a custom TLcdWFSFilteredModelFactory is used to customize the filtering logic.

Bug fixLuciadFusion

LCD-11353
XML framework: in some cases, decoding an xsi:type attribute value without a namespace prefix could trigger an exception.

Bug fixLuciadFusion

LCD-11348

The TLcdOGCDistanceBuffer and TLcdOGCBinarySpatialOperator need to transform their shape to match the reference of the shape that is being evaluated. This was not done in the past, causing wrong results of the spatial test.

Seeing as not all shapes can be converted from one reference to another, the documentation of both classes has been updated to clearly document that this transformation is needed when mixing references, and that it is recommended to avoid this case.

We support a limited number of shape transformations out of the box (currently only points and bounds). When the transformation fails, evaluating the filter will now throw a clear exception instead of providing the wrong results.

Bug fixLuciadFusion

LCD-11350
An empty SLD raster symbolizer didn't use a default color map to render elevation data in a Lightspeed view, causing the data to remain invisible.

Bug fixLuciadFusion

LCD-10718
The SLD opacity setting was not taken into account for (inline/external) SVG icons.

Bug fixAviation Standards

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

2020.0.06

ImprovementLuciadFusion

LCD-11341
TLcdGeoJsonModelDecoder now configures a display name provider on the TLcdDataModel of its decoded models. This ensures that TLcdDataProperty#getDisplayName always provides the property name as it is written in the source file, even when the name contains special characters. Lucy picks up these display names automatically.

ImprovementLuciadFusion

LCD-11339
TLcdOGCModelReferenceParser now also has support for http://www.opengis.net/def/crs/OGC/1.3/CRS84 and http://www.opengis.net/def/crs/OGC/0/CRS84h.

ImprovementLuciadFusion

LCD-11338
The XML framework now trims leading and trailing whitespace from anyURI values.

ImprovementLuciadFusion

Added convenience API to ease working with SLD geometries based on an OGC function:

ImprovementLuciadFusion

LCD-11335
The URI provided to the WMS client API is now checked for reserved parameter names at the time of creation. Such parameters are removed from the URI when requesting the WMS capabilities. Due to improvement LCD-7918 addition of for example LAYERS=layername could leak through the GetMap request and the LAYERS could appear twice within the request. Having this parameter twice in the request may lead to undefined results or WMS services responding with an error message.

ImprovementLuciadFusion

LCD-11330
Added support for the BMP format for SLD bitmap graphic icons.

ImprovementLuciadFusion

LCD-11293
Improved the auto-detection of SLD raster normalization intervals by means of a more accurate histogram operation.

ImprovementDefense Symbology

LCD-11336
The painting of the Seize symbol has been improved when it is used in the 4 points painting mode. The arrow stroke is now anchored to the center point of the circle instead of the point that defines the radius of the circle.

ImprovementDefense Symbology

LCD-11334
The editing behaviour of the 4-point painting mode of the "Seize" symbol was changed. Translating the first point will now translate the whole symbol.

Bug fixLuciadFusion

LCD-11347
TLspLayerStyle was broken when used in a TLspFXView with a 3D projection.

Bug fixLuciadFusion

LCD-11343
Evaluating a spatial filter on raster data would result in a ClassCastException. Now it correctly throws an IllegalArgumentException as documented.

Bug fixLuciadFusion

LCD-11337
Fixed an SLD icon rendering issue that occurred in case of a line symbolizer that defined a stroke based on a world-sized SVG icon and a non-zero rotation and/or non-zero transparency.

Bug fixLuciadFusion

LCD-11318
The WFS client did not properly encode output formats containing spaces (e.g., "application/gml+xml; version=3.2") in GetFeature requests.

Bug fixDefense Symbology

LCD-11333
Fixed issue where decorations were repeated on the arrow stroke of the "Seize" symbol.

2020.0.05

ImprovementInfrastructure Standards

LCD-11295
TLcd3DTilesProcessorBuilder: Improved robustness of the 3D tiling engine in the case where indices for vertices, uv coordinates or normals are missing for parts of a dataset.

ImprovementInfrastructure Standards

LCD-11306
TLcd3DTilesProcessorBuilder: Improved support for OBJ files that contained duplicate triangles. Previously this would cause some z-fighting, but this has been improved so only the last defined triangle in the OBJ ends up in the dataset. This improves visual quality for an edge-case that typically occured in handcrafted 3D models.

ImprovementInfrastructure Standards

LCD-11315
TLcd3DTilesProcessorBuilder: Improved robustness of decoding of material files. We now replace backslashes in paths with OS-dependent file separators. This allows some OBJ files which were encoded in Windows environments to be decoded on other operating systems.

Bug fixLuciadFusion

LF-1956
Fixed an issue where the default style of a data source would not be recognized if the data was crawled before the style.

Bug fixLuciadFusion

LF-1954
Fixed an issue where the abstract was not being shown in the Fusion Studio web interface for Data. The abstractText property has also been added to the Data object in the REST API

Bug fixLuciadFusion

TLcdCSVModelDecoder: fixed the incorrect parsing of days in DateTime fields.

Bug fixDefense Symbology

LCD-11327
Added missing text modifier labels for some icon symbols.

Bug fixDefense Symbology

LCD-11325
The following APP6-D symbols did not display a (correct) dimension icon:
Set Code Symbol Code Name
10 111001 LAND UNIT - Command and Control - Signal – Radio
10 111002 LAND UNIT - Command and Control - Signal - Radio Relay
10 111003 LAND UNIT - Command and Control - Signal – Teletype
10 111004 LAND UNIT - Command and Control - Signal - Tactical Satellite
10 111005 LAND UNIT - Command and Control - Signal - Video Imagery (Combat Camera)

Bug fixDefense Symbology

LCD-11323
Fixed symbol with id 25272100 - "Minimum Safe Distance Zone" in APP-6D and MIL-STD 2525d. It was incorrectly painted with a movement direction arrow, and could throw an exception when interactively created in APP-6D.

Bug fixDefense Symbology

LCD-11319
Changed the way plain line symbols are painted to ensure consistent draping behaviour with patterned line symbols in Lightspeed 3D views.

Bug fixInfrastructure Standards

LCD-11316
TLcd3DTilesProcessorBuilder: When encoding material files, the illum value is now correctly interpreted as an integer instead of a floating point value.

2020.0.04

ImprovementLuciadFusion

TLcdCSVModelDecoder now automatically skips any "\uFEFF" byte order mark.

ImprovementLuciadFusion

TLcdCSVModelDecoder can now parse non-standard date formats (see setDateFormat).

ImprovementLuciadFusion

LCD-11311
Added ILcdEditableTimeBounds#setToIncludeTime to easily include a single time in a time bounds object.

ImprovementLuciadFusion

LF-1774
Fusion crawl job progress reporting will now account for child data. This should ensure a more fluent progress.

Bug fixLuciadFusion

LCD-11305
TLcdGMLTransformer would close 3D polygons with a 2D point, regardless of the CRS. This has been fixed.

Bug fixLuciadFusion

LF-1952
Fixed a bug where preprocess jobs that encountered an error during preprocessing would not get removed from the active job list, preventing the preprocess job from being executed again. Preprocess jobs that encounter an error are now correctly removed so that they can be queued again.

Bug fixLuciadFusion

LCD-11292
The SLD band-specific raster normalization style incorrectly used the histogram of the R band for all RGB bands.

Bug fixDefense Symbology

LCD-11309
Fixed issue in GXY views where symbol decorations would disappear when zooming out far enough and back in.

2020.0.02

ImprovementLuciadFusion

LF-1930
Recrawling a data root does no longer marks failed files as skipped if they are unchanged. This allows for the errors te remain visible even after recrawling.

ImprovementLuciadFusion

LF-1947
A new configuration property has been added to allow users to specify whether OGC3DTiles service responses can be cached by clients and how long they can be cached. See the fusion.ogctilesservice.cache property in the application-fusion.common.yml config file for more information.

ImprovementLuciadFusion

It is now possible to add products containing OBJ mesh data to an OGC 3D Tiles service. The mesh data will be processed into OGC 3D Tiles before it is served. A preprocess job will be created for the product to perform the preprocessing.

ImprovementDefense Symbology

LCD-11256
Changed placement of echelon symbols for "Boundaries - Line" symbols so they disappear less quickly when zooming out.

Bug fixLuciadFusion

LF-1950
For very specific combinations of coverage settings and very detailed data the fusion engine could fail with a NullPointerException. This could happen when defining a tile matrix set in WGS:84 covering the entire world, using 4 columns and 2 rows at the top-level and using 32x32 pixels per tile, to fuse data where each pixel is about a few centimeters. This case is handled correctly now. Additionally threshold values internally have been adjusted to allow such global coverages up till 1cm resolution.

Bug fixLuciadFusion

LCD-11291
Addressed an issue where WMTS services that can be accessed with custom parameters (e.g. access token) added to the URL couldn't be displayed on the map. These custom parameters in the URL were treated as dimensions by the WMTS client.

Bug fixLuciadFusion

LCD-11276
SLD raster rendering in GXY / Lightspeed did not support the application of a color map on the result of a single band selection for multi-band raster data.

Bug fixLuciadFusion

LF-1901
Changing the data in a product published to an OGC 3D Tiles service will now cause the service preprocessing job to reprocess the data so that the updated state of the product is correctly reflected in the service.

Bug fixDefense Symbology

LCD-11246
Enabled 4 points painting mode for MIL-STD 2525c "Seize" (2.X.1.23) symbols. To paint these symbols with 4 points you have to create a TLcdEditableMS2525bObject with 4 points in its point list or create a TLcdEditableMS2525bObject with a ILcdRestrictedLengthPointList or a ILcdRestrictedLengthPointList with a minimum point count of 4 points.

Upgrade considerationLuciadFusion

LCD-11278

ILcdEvaluatorFactory: the canBuildEvaluator method could not perform a decent check because it did not receive the same arguments as the buildEvaluator method. This could result in the creation of evaluators which would throw exceptions when used.

This has been fixed by introducing a new default canBuildEvaluator method which has the same arguments as the buildEvaluator method. The old method has been deprecated.

The result of this change is that calling TLcdOGCFilterEvaluator#buildFilter for a filter containing expressions that cannot be evaluated will now throw an IllegalArgumentException in all cases, and never return a filter with undefined behavior at runtime.

The ILcdEvaluatorFactory interface should not be implemented nor used by customers, so this change should not affect your code base.

2020.0

New featureLuciadFusion

LuciadLightspeed now comes with a native JavaFX Lightspeed view called TLspFXView. All controller and editing API has been adjusted to work with FX input events. In addition, the following API has been added to kick-start your JavaFX development:

Refer to the samples.lightspeed.javafx package for samples demonstrating the new FX view.

Note that the LuciadLightspeed API provides numerous Swing UI components. However, only the UI elements explicitly listed above are currently available for JavaFX.

New featureWeather & Environment Standards

BUFR files containing World Area Forecasting System (WAFS) Significant Weather (SIGWX) data can now be decoded and visualized in Lightspeed and GXY views, and LuciadFusion WMS/WMTS/WFS services.

BUFR Lightspeed visualisation
Example of a BUFR dataset visualized in Lightspeed

For more details, see:

New featureDefense Standards

XML files containing data for the MGCP 2.0.1 Portrayal standard can now be decoded and visualized in Lightspeed and GXY views, and LuciadFusion WMS/WMTS services.

MGCP dataset
Example of a dataset rendered with MGCP styling

For more details, see:

New featureInfrastructure Standards

Support for the Hexagon PPM Binz data format. For more details, see

ImprovementLuciadFusion

Support for topocentric reference systems was added to TLcdWKTReferenceParser and TLcdWKTReferenceFormatter. The WKT format loosely follows the topocentric example in the OGC WKT CRS 1.0 specification.

ImprovementLuciadFusion

A new model encoder TLcdOGC3DTilesModelEncoder was added. It can be used to encode tiled and multi-leveled mesh models into OGC 3D Tiles. Currently it can only be used to encode models loaded from OSGB, BINZ or other Luciad-provided decoders.

ImprovementLuciadFusion

Balloon managers can now automatically pick up any content provider that is annotated with LcdService. See the appropriate constructor for more information.

ImprovementLuciadFusion

TLcdModelList and TLcd2DBoundsIndexedModelList now override the query() method and pass the query to the delegate model. This can greatly help performance if delegate models optimize the query internally.

ImprovementLuciadFusion

ALcdScaleIndicator: you can now toggle between the scale bar icon and a textual representation of the scale (e.g. 1 : 5000). Refer to the class javadoc for more information on how to use this new feature.

ImprovementLuciadFusion

ILcdGXYView: added several methods that were already present in all view implementations.

ImprovementLuciadFusion

TLspMagnifierController: this new controller allows users to zoom in on a part of the view, that is then displayed in a square overlay that follows the mouse position.
In the magnifier overlay, world sized objects are scaled while view sized objects have the same size as in the original view.

The new controller is available in all samples with visual inspection tools (e.g. samples.lightspeed.decoder)

ImprovementLuciadFusion

TLcdGXYShapePainter: considerably improved anti-aliased appearance of shapes that are discretized into many small line segments.

ImprovementLuciadFusion

LCD-10079
GXY label placement can now be configured at the layer level. This means you can configure label visualization as well as label placement in your layer factory. Refer to TLcdGXYLayer#setGXYLabelingAlgorithmProvider and its sample code usages for more information.

ImprovementLuciadFusion

Support for the Krovak projection was added, see TLcdKrovak. TLcdWKTReferenceParser and TLcdEPSGReferenceParser have been modified to support this new projection. For the latter, the following EPSG codes that use the Krovak projection are now supported:
  • EPSG:2065
  • EPSG:5221
  • EPSG:5513
  • EPSG:5514
  • EPSG:8352
  • EPSG:8353

ImprovementDefense Standards

LCD-11166
MGCP zip files are now supported. In order to use the .zip files they must be renamed to .mgcp.zip.

ImprovementDefense Symbology

The initial/uncached symbol icon rendering speed has been significantly improved.

ImprovementInfrastructure Standards

We have added the TLcd3DTilesProcessorBuilder to the API. This class lets you create a processor that converts 3D meshes into the OGC 3D Tiles format. We also added a command line sample that allows you to invoke the processor without writing code.

ImprovementMaritime Standards

The GXY-specific ECDIS sample has been removed. You can open S-57 data using the generic GXY Decoder sample.

If you need the S-52 display settings UI panel in GXY, you can easily plug that in and use the S52GXYLayerFactory to pick up the S-52 display settings instance. For more information, see the tutorial article "How to customize the S-52 visualization".

ImprovementS-63

The S-63-specific sample have been removed. You can open S-63 data using the regular ECDIS Lightspeed sample, or the generic Lightspeed and GXY Decoder samples.

All these samples will automatically pick up the TLcdS63UnifiedModelDecoder to load S-63 data. Place your Cell Permit files (ENC.PMT or PERMIT.TXT) next to the source data, and make sure you are using the Luciad license that has the corresponding User Permit.

Bug fixLuciadFusion

LCD-11244
Fixed a potential deadlock when loading BINZ data in a TLspFXView.

Bug fixInfrastructure Standards

LCD-11264
TLcd3DTilesProcessorBuilder: fixed an issue that would cause small triangles to disappear when processing OBJ files with a geodetic reference.

Upgrade considerationLuciadFusion

You now need to manually initialize touch support for Swing applications by calling TLcdTouchDevice#getInstance() at application startup. Any touch enabled application that checks the touch device status automatically fulfills this requirement.

Upgrade considerationLuciadFusion

TLcdTouchEvent#getSource and TLcdAWTEvent#getSource: the return type has been changed from Component to Object. This allows using the Lightspeed touch controllers in a Lightspeed JavaFX view. If you were using those methods in your application, you may need to cast the result to a Component.

Upgrade considerationLuciadFusion

The data category in the model metadata of OBJ models produced by TLcdOBJModelDecoder has been changed from VECTOR to MESH.

Upgrade considerationLuciadFusion

TLspExternalView is now deprecated. Integration of LuciadLightspeed in C++ applications is no longer actively supported as of V2020.0. Please contact your account manager or support.luciad.gsp@hexagon.com to discuss possible alternatives.

Upgrade considerationLuciadFusion

To improve the separation between AWT and JavaFX code paths, the return type of TLspEditHandleResult#getProcessedEvent() was changed from EventObject to AWTEvent. In practice, this change should have no impact on existing applications, since
  • API users are not expected to have overridden getProcessedEvent();
  • Other parts of the API and implementation did enforce the use of AWTEvent.

Upgrade considerationLuciadFusion

The GXY view implementations now have the following useful options enabled by default:
  • All views now have label placing enabled by default. If you don't want advanced label placement or decluttering, you can disable it by calling view.setGXYViewLabelPlacer(null).
  • All views now use anti-aliasing by default. To disable this, call view.setAntiAliased(false).
  • All views no longer use smart panning by default. To revert this, call view.setSmartPan(true).
  • All map implementations (e.g. TLcdMapJPanel) now come with sensible minimum and maximum scale ranges. To revert this, call view.setMinScale(0) and view.setMaxScale(Double.MAX_VALUE).

2019.1

2019.1.11

ImprovementLuciadFusion

The EPSG resources are updated to EPSG database v9.8.6.

2019.1.10

ImprovementLuciadFusion

LF-1939
Improve job execution handling for jobs stuck in running who could no longer be queued or stopped. These jobs can now be queued or stopped to recover them from the running state without having to restart LuciadFusion as was required previously.

ImprovementLuciadFusion

LCD-10644
TLcdBingMapsModelDecoder now uses the new on-demand variants for imagery requests when using ELcdBingMapsMapStyle.ROAD and ELcdBingMapsMapStyle.AERIAL_WITH_LABELS.

ImprovementLuciadFusion

LF-1926
A new REST API call /api/services/types/validate-products is available which allows to check which services can be created for the given products.

ImprovementLuciadFusion

LCD-10394
TLcdOBJModelDecoder now uses a TLcdCompositeModelReferenceDecoder with all default available ILcdModelReferenceDecoder instances (i.e. all model reference decoders annotated with the @LcdService annotation). This means that the default TLcdOBJModelDecoder can now also decode OBJ files with, for example, a PRJ reference.

ImprovementLuciadFusion

LF-1923
LuciadFusion system administrators can now configure LuciadFusion to use Oracle 19c database for the catalog (see config/application-fusion.development.yml for details).

ImprovementLuciadFusion

LF-1922
Added the ability to modify the set of CRS codes exposed in LuciadFusions' WMS responses. See the following new properties in config/application-fusion.common.yml for more details.
  • wms.crsReferences
  • wms.epsgReferences
  • wms.auto2References
  • wms.autoReferences

ImprovementLuciadFusion

LF-1924
LuciadFusion system administrators can now configure LuciadFusion to use a PostgreSQL version 12 (with PostGIS 3) database for the catalog (see config/application-fusion.development.yml for details).

ImprovementLuciadFusion

LF-1887
LuciadFusion system administrators can now configure LuciadFusion to use a SQL Server 2019 database for the catalog (see config/application-fusion.development.yml for details).

ImprovementMaritime Standards

LCD-11262
The M_SREL object class in IENC can have the INFORM attribute, even if the spec doesn't prescribe this. It is now added.

Bug fixLuciadFusion

LF-1941
LuciadFusion Platform now uses a custom cookie name to as to not conflict with other Spring web applications that use the default cookie name set within the Spring framework.

Bug fixLuciadFusion

LF-1938
Addressed an issue where the results of services published by LuciadFusion Platform could not be cached by web clients. Headers that cause the results not to be cached have been removed from the HTTP responses.

Bug fixLuciadFusion

LCD-6488
The TLcdGeoTIFFModelEncoder now encodes the tiff tag GDAL_NODATA when the source model contains a ALcdImage with semantics specifying a no data value.

Bug fixLuciadFusion

LCD-11243
Fixed an issue where navigating around a geopackage file would keep opening new connections to the file, which could result in a system running out of usable file descriptors. The amount of connections to a geopackage file is now capped to a fixed amount.

Bug fixLuciadFusion

LCD-11263
TLcdCompositeStringTranslator: improved robustness for null strings.

Bug fixLuciadFusion

LCD-11260
The TLcdJAIRasterModelDecoder could not handle certain PNG files. The decoding for such image files is now done via ImageIO.

Bug fixLuciadFusion

LCD-123
TLcdGXYCircularArcPainter and TLcdGXYCircleBy3PointsPainter: disallowed some snapping scenarios that would result into degenerate shapes.

Bug fixLuciadFusion

LCD-11248
A TLcdGML*LinearRing now implements ILcdInvalidateable and automatically invalidates itself when replacing its posGroup.

Bug fixLuciadFusion

LCD-10947
TLsp2DPointListEditor/TLsp3DPointListEditor: fixed an issue that prevented customizing the create handle to append points to both the start and end of a pointlist using freehand ELspCreationMode.FREEHAND_AND_CLICK and ELspCreationMode.FREEHAND_SINGLE_SWIPE.

Bug fixLuciadFusion

A TLcdGML*LinearRing with an empty TLcdGML*CoordinatesposGroup would throw an exception when inserting a point. This has been fixed.

Bug fixLuciadFusion

LCD-10926
Fixed bug in TLcdSHPModelDecoder that could cause incorrect String properties in the decoded features.

Bug fixDefense Symbology

LCD-11266
Fixed issue where labels of circles, ellipses, rectangles, etc were not centered properly.

Bug fixDefense Symbology

LCD-11257
Fixed issue where Rectangular symbols would become triangular when zoomed in in GXY.

Bug fixDefense Symbology

LCD-11201
Removed label gaps that appear in the fill patterns of following symbols
Code Mask Name
G*F*AKPC--****X Purple Kill Box, Circular
G*F*AKPR--****X Purple Kill Box, Rectangular
G*F*AKPI--****X Purple Kill Box, Irregular
G*F*AKBC--****X Blue Kill Box, Circular
GG*F*AKBR--****X Blue Kill Box, Rectangular
G*F*AKBI--****X Blue Kill Box, Irregular
G*F*ACNR--****X No Fire Area (NFA), Rectangular
G*F*ACNC--****X No Fire Area (NFA), Circular
G*M*NM----****X Minimum safe Distance Zones

Bug fixDefense Symbology

LCD-11152
The lines at the back of the "Support by Fire Position" and "Attack by Fire Position" symbols now appear as dashed when the symbol status is Planned/Anticipated.

2019.1.09

ImprovementLuciadFusion

LCD-7828
TLcdDatabaseModel now has a method #refresh that updates all cached elements with data in the database. This method also picks up elements that were added to the database. Previously, a workaround was needed that involved clearing the cache and querying the model in order for the cached elements to be updated. Note that this method only works for Oracle Spatial, PostgreSQL, MSSQL and Geopackage databases.

Bug fixLuciadFusion

LCD-11224
ALspComplexStroke: When creating a stroke with icons, it was possible that small gaps were visible between adjacent icons on the stroke.

Bug fixLuciadFusion

LCD-5170
TLcdSVGIcon: improved rendering accuracy for small icons.

Bug fixLuciadFusion

LCD-11208
Fixed erratic scale calculation when tilting the camera in a 3D grid reference.

Bug fixLuciadFusion

LCD-9110
Fixed an issue where GeoTIFF data was interpreted as elevation data but a multilevel version of the data was not.

Bug fixLuciadFusion

LCD-11184
SLD raster rendering in GXY / Lightspeed did not take the optional opacity attribute for SLD ColorMapEntry elements into account; the colors in these elements were assumed to be non-transparent.

Bug fixDefense Standards

LCD-11192
TLcdVPFModelDecoder: If the decoder was configured to decode features using ELEMENT_PER_FEATURE, some geometries could be missing.

Bug fixDefense Symbology

LCD-10377
APP-6C icons with "Exercise/Hostile" or "Exercise/Suspect" affiliation were incorrectly painted as hostile and are now painted with the friendly affiliation frame. Constant values of AFFILIATION_EXERCISE_HOSTILE and AFFILIATION_EXERCISE_SUSPECT are marked as deprecated and redirect to AFFILIATION_JOKER and AFFILIATION_FAKER respectively.

Bug fixDefense Symbology

LCD-11183
Added the following symbols which were missing from the APP-6D hierarchy.
Set Code Symbol Code Name
10 111001 LAND UNIT - Command and Control - Signal – Radio
10 111002 LAND UNIT - Command and Control - Signal - Radio Relay
10 111003 LAND UNIT - Command and Control - Signal – Teletype
10 111004 LAND UNIT - Command and Control - Signal - Tactical Satellite
10 111005 LAND UNIT - Command and Control - Signal - Video Imagery (Combat Camera)
10 160501 LAND UNIT - Sustainment - Band - Army Music

Upgrade considerationDefense Symbology

TLcdAPP6AEchelonNode.getCodeMask and TLcdMS2525bEchelonNode.getCodeMask have been deprecated. These methods are not compatible with the more recent symbology standards which no longer use code masks (MIL-STD 2525d, APP-6C, APP-6D,...). These methods now always return the name of the echelon.

Use TLcdAPP6AEchelonNode.getName() or TLcdMS2525bEchelonNode.getName() to identify an echelon.

Use TLcdAPP6AEchelonNode.applyOn(ILcdEditableAPP6ACoded) or TLcdMS2525bEchelonNode.applyOn(ILcdEditableMS2525bCoded) to apply the echelon to a symbol.

2019.1.08

ImprovementLuciadFusion

LF-1916
A method was added to the REST API that allows you to add keywords to a service (POST /api/services/id/keywords). Previously you were required to request the service with the list of keywords, adjust the list and then update the service with the new list.

ImprovementLuciadFusion

LCD-11142
The TLcdGeoTIFFModelDecoder now supports the tiff tag GDAL_NODATA value nan.

ImprovementLuciadFusion

LF-1899
A method was added to the REST API that allows you to add products to a service (POST /api/services/id/products). Previously you were required to request the list of products on a service, adjust the list and then set the updated list of products.

Bug fixLuciadFusion

LCD-11203
TLcdGXYDensityLayer: resolved an issue when using HiDPI rendering.

Bug fixLuciadFusion

LCD-11190
Corrected a multi-threading issue in the transformation code. This fixes visual artifacts which could appear in some scenarios. For example, displaying some kinds of raster data in Lightspeed views.

Bug fixLuciadFusion

LF-1918
Added the missing configuration settings in config/application-fusion.common.yml to enable or disable the OGC 3D Tiles and File Server services. These need to be disabled when disabling Studio in the application-fusion.common.yml file.

Bug fixLuciadFusion

LF-1917
Fixed a race condition problem where using the "most detailed" geometry from a tiled vector feature triggered an error about an incorrect amount of fills. This could happen when you iterate over the elements of a tiled vector model and used their geometry.

Bug fixLuciadFusion

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

Bug fixLuciadFusion

LCD-11121
Fixed a memory leak that could occur when regularly creating a new TLspParameterizedIconStyle.

Bug fixLuciadFusion

LCD-11132
TLcdVVJPanel: improved behavior for profiles with vertical lines.

Bug fixDefense Symbology

LCD-11139
Fixed several icon symbols in MIL-STD 2525d and APP-6D that would be displayed with an incorrect hierarchy icon.

2019.1.06

ImprovementDefense Symbology

LCD-11100

Support was added for the engagement bar graphical amplifier for the MIL-STD-2525c, MIL-STD-2525d and APP-6D standards.

A new text modifier was added which can be used to set the content of the engagement bar. The name of this text modifier can be accessed trough the static properties ILcdAPP6ACoded.sEngagementBar and ILcdMS2525bCoded.sEngagementBar.

Styling options for the engagement bar are configured using the new class TLcdEngagementBarStyle, which can be set and retrieved from ILcdAPP6AStyle and ILcdMS2525bStyle.

ImprovementMaritime Standards

LCD-11124

Added an option to disable certain painting optimizations in TLcdS52GXYCatalogueLayer.

By default, these optimizations are enabled, and typically reduce the amount of elements to be painted by 30%. The cost of determining which elements to skip is offset by faster subsequent paints because of spatial locality.

In the context of a WMS server however, you have multiple threads/layers handling requests of multiple users, in different areas. In this case, each layer has to build up the visibility information separately and can re-use it a lot less in subsequent requests.

When using tiled WMS or WMTS, requests don't overlap and are typically cached on the client and/or server.

To use this option in WMS or WMTS, plug in your own ILcdGXYLayerFactory:

      @LcdService(service = ILcdWMSGXYLayerFactory.class, priority = LcdService.HIGH_PRIORITY)
      public class MyWMSLayerFactory implements ILcdWMSGXYLayerFactory {
         @Override
         public ILcdGXYLayer createGXYLayer(ILcdModel aModel, ALcdWMSLayer aWMSLayer, String aStyleID, TLcdWMSRequestContext aContext) {
            TLcdS52GXYCatalogueLayer layer = (TLcdS52GXYCatalogueLayer)
            TLcdS52ProductConfiguration.getInstance(ELcdS57ProductType.ENC).createGXYLayerFactory(displaySettings).createGXYLayer(aModel);
            layer.setMultileveledObjectVisibilityCalculations(false);
            return layer;
         }
      }
    

2019.1.05

ImprovementLuciadFusion

LF-1907
LuciadFusion server will now include stacktraces in the log file when reporting errors. This required enabling debug logging previously.

Bug fixLuciadFusion

LF-1835
Fix bug where LuciadFusion Studio notifications would stop occurring if there is no notification activity for a period of time.

Bug fixMaritime Standards

LCD-11106
Resolved a very rare issue where polygons were wrongly displayed with holes and spikes.

2019.1.04

Bug fixLuciadFusion

LF-1904
When using an invalid feature type name within the WFS, the service should return a 400 status, not a 500 status.

Bug fixLuciadFusion

LF-1903
The WFS feature type title should use the product title, not the data source title in the features metadata.

Bug fixLuciadFusion

LCD-11091
Data obstructed by fully transparent pixels of a raster layer, was not always visible in a 3D view.

Bug fixLuciadFusion

LCD-11102
Using an SLD Recode function inside a text symbolizer label element triggered an exception during rendering.

Bug fixLuciadFusion

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 fixDatabase Connectors

LCD-11098
Fixed an issue where an incorrect value was set for the dimensions property when decoding 3D data from an Oracle database.

Bug fixDatabase Connectors

LCD-11047
Fixed an issue where 3D points were encoded as 2D points when saving it to an Oracle database.

Bug fixDatabase Connectors

LCD-11046
Fixed an issue where 3D lines stored in an Oracle database were decoded as 2D lines.

Bug fixAviation Standards

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

2019.1.03

ImprovementLuciadFusion

LF-1891
Improved logging when Fusion fails to enqueue crawl job by including the causing exception in the logging output.

Bug fixLuciadFusion

LCD-11093
Conversion to 3DTiles: Fixed a bug where the normals would have an incorrect direction, thus negatively affecting the lighting.

Bug fixLuciadFusion

LF-1893
Fixed an issue that could introduce a deadlock when updating the products of a service using the REST API.

Bug fixLuciadFusion

LF-1890
Fixed an issue that made it possible for a Data Root to be created without a corresponding Crawl Job.

Bug fixLuciadFusion

LCD-11087
Fixed UnsupportedOperationException in ILcdGL#glGetProgramInfoLog()

Bug fixLuciadFusion

LF-1885
Fixed an issue where using the REST API trying to obtain a Data item based on a path that started with a double backslash returned nothing.

2019.1.01

ImprovementLuciadFusion

LCD-10958

SLD now supports the use of functions inside SLD Geometry and ParameterValue (such as rotation) elements. On top of the existing capability to use property names, this provides additional flexibility to determine the desired value.

Additionally, support has been added for 4 new functions in TLcdOGCVendorSpecificFunctions that operate on a geometry defined by a given property name:
  • startAngle(propertyName) and endAngle(propertyName): determine respectively the start and end angle of the referred geometry, measured in degrees clockwise from the direction at 12 o'clock.
  • startPoint(propertyName) and endPoint(propertyName): determine respectively the start and end point of the referred geometry.

An example use case combining these new functions and the possibility to use them inside SLD Geometry and ParameterValue elements is the configuration of an arrow head at the end of a polyline. By using a point symbolizer with a geometry defined by the endPoint of the polyline and a rotation defined by the endAngle of the polyline, an oriented arrow icon can be drawn at the end of the polyline.

ImprovementLuciadFusion

TLcdGXYCompositeController now also works with ILcdAWTEventListener delegates.

ImprovementLuciadFusion

LCD-11038
The TLcdOBJModelDecoder will no longer throw exceptions when encountering 'map_d' lines with empty reference in an MTL file.

ImprovementLuciadFusion

LCD-10183
The magnetic north data files for WMM and IGRF have been updated to cover the period 2005-2025. The IGRF decoder now decodes the official coefficients file as downloaded from NOAA (i.e. igrf13coeffs.txt).

ImprovementDefense Symbology

LCD-11027
Allow creation of icon symbols for the following top-level symbols for the APP-6D and MI-STD-2525d standards.
  • Air
  • Air Missile
  • Space
  • Space Missile
  • Land Unit
  • Land Civilian Organization
  • Land Equipment
  • Land Installation
  • Dismounted Individual
  • Sea Surface
  • Sea Subsurface
  • Mine Warfare
  • Activities
  • Signals Intelligence - Space
  • Signals Intelligence - Air
  • Signals Intelligence - Land
  • Signals Intelligence - Surface
  • Signals Intelligence - Subsurface
  • Cyberspace - Space
  • Cyberspace - Air
  • Cyberspace - Land
  • Cyberspace - Surface
  • Cyberspace - Subsurface

Bug fixLuciadFusion

LCD-11017
TLspSwipeController and TLspPortholeController did not work correctly on HiDPI screens.

Bug fixLuciadFusion

LCD-11037
SLD raster rendering in GXY / Lightspeed incorrectly applied color interpolation in case of a color map defined by an SLD Categorize function. To enable interpolation, support has been added for color maps defined with an SLD Interpolate function.

Bug fixLuciadFusion

LF-1876
In certain cases the fusion engine would not immediately stop processing when an exception occurred. This could for example happen when there is no disk space left to store data. Now the exception makes the processing fail fast.

Bug fixLuciadFusion

LF-1882
Fixed case where the creation of the engine session failed with a IllegalStateException.

Bug fixLuciadFusion

LCD-11016
Fixed an issue that prevents to create balloons with TLcdGeoAnchoredBalloonDescriptor in a Lightspeed view without any layer.

Bug fixDefense Symbology

LCD-11024
Fixed a military symbology issue that could cause a RuntimeException when editing symbols on a GXY view in some cases where label editing and/or label decluttering was enabled.

2019.1

ImprovementLuciadFusion

LCD-11018
TLcdGeoJsonModelEncoder now respects the input file's feature property order.

ImprovementLuciadFusion

LCD-10925
Improved the interoperability with legacy WFS clients that do not recognize the reference notation urn:ogc:def:crs:OGC:1.3:CRS84; for this reference, the WFS capabilities now also include the legacy CRS:84 notation als additional reference.

ImprovementLuciadFusion

ILcdLayered: added a default addLayeredListener method which triggers the listener for all current and future layers.

ImprovementLuciadFusion

ILcdLayeredListener: 2 static factory methods have been added to the interface to easily listen for added and removed layers, respectively.

ImprovementLuciadFusion

LCD-10862
The ServiceRegistry interface is deleted from the sample code. All samples now use TLcdServiceLoader to query the service registry. This makes the sample code less complex.

ImprovementLuciadFusion

LCD-7602
TLcdLonLatPointFormat now has a strict mode using setOnlyAllowStrictValidCharacters. In strict mode no invalid characters will be allowed. By default this will be set to false.

ImprovementLuciadFusion

LuciadLightspeed now supports the eye-dome lighting (EDL) technique to improve depth perception in point cloud data sets. For more details, see the how-to article on eye-dome lighting.

The functionality of changing the EDL parameters is also available in the Lucy UI.

ImprovementLuciadFusion

LCD-7424
TLcdSymbol now allows configuring the border width for the outline of the symbol.

ImprovementLuciadFusion

LCD-9399
The TLcdCSVModelDecoder has been improved to handle coordinate data in a single column. Valid coordinate data will be automatically detected. See TLcdCSVDataSource for more info on how to specify column types.

ImprovementLuciadFusion

LCD-9358
Made the TLcdColorMapCustomizer more user friendly by adding hover indications and tooltips. These should make it clear for the user that the components can be edited.

ImprovementLuciadFusion

LCD-10811
The JVM option optimize.raster.color.model no longer affects the TLcdGeoTIFFModelDecoder. The behavior is now always the same whether you have a graphics environment or not.

ImprovementLuciadFusion

LCD-10498
Added support for registering an ILcdStringTranslator as a service. It will be automatically picked up by all our classes that use an ILcdStringTranslator. This makes it easy to translate all the UI components. Just like other service interfaces we added a TLcdCompositeStringTranslator which makes it easy to work with all registered instances.

ImprovementLuciadFusion

LCD-9540
TLcdOGCModelReferenceParser is extended to support WKT content with or without the 'urn:ogc:def:crs:' prefix.

ImprovementLuciadFusion

LCD-8425
Deprecated ILcdModel.FIRE_NOW as proper usage of model locks only allow for use cases with ILcdModel.NO_EVENT or ILcdModel.FIRE_LATER.

ImprovementLuciadFusion

LCD-10430
ILcd2DEditablePointList now includes a default method append2DPoint to append a point to the back of the list.

ImprovementLuciadFusion

LCD-9949
The TLcdCSVModelDecoder has been improved to handle GeoJson geometry data. Valid GeoJson data will be automatically detected. See TLcdCSVDataSource for more info on how to specify column types.

ImprovementLuciadFusion

LCD-9714
Improvements have been made to the WKT (well known text) format parser. It is now possible to place the UNIT before the PROJECTION tag.

ImprovementLuciadFusion

LCD-9560
TLcdOGCFilterContext#fromModel: this new utility method makes it easier to create a filter context for filtering domain objects from a model.

ImprovementLuciadFusion

LCD-9241
TLcdOGCFilterFactory: added new bbox methods facilitating the creation of a BBOX filter.

ImprovementLuciadFusion

LCD-10559
The ILcdPointList2 interface added no extra methods compared to the ILcdPointList interface. There was no more reason to use the ILcdPointList2 interface, so it has been deprecated.

ImprovementLuciadFusion

LCD-9148
The WMS client samples now show when connecting to a new WMS URL the layers of the newly added WMS layer.

ImprovementLuciadFusion

LCD-4977
A new TLcdAngleFormat is available to format angles specified in TLcdAngleUnit. The format works similar as the TLcdSpeedFormat, TLcdAltitudeFormat and TLcdDistanceFormat where an internal programming unit is used along with a display unit.

ImprovementLuciadFusion

LCD-9691
Made sure that runtime exceptions are wrapped into an IOException when creating an output stream using an ILcdOutputStreamFactory.

ImprovementLuciadFusion

LCD-5035
The ILcdLogger interface now has default methods that accept an array of message parameters, making it easier to log parameterized messages. A custom ILcdLogger implementation must detect and handle these message parameters. The log implementation must check whether or not it is receiving a single message parameter or an array of message parameters and format the message accordingly.

ImprovementTerrain Analysis Engine

TLcdAltitudeMatrixViewFactory: a new overloaded version of createPathAltitudeMatrixView has been added which retrieves the elevation values for the point of an ILcdCurve from the curve itself, instead of relying on an altitude provider.

ImprovementTerrain Analysis Engine

TLcdAltitudeDescriptor and TLcdVisibilityDescriptor: added generics to the map of special values.

Bug fixLuciadFusion

The SLD decoder now ignores leading newline and/or leading spaces when decoding a text symbolizer label element.

Bug fixLuciadFusion

LCD-10991
The SLD label rotation implementation for Lightspeed views did not properly take into account a possible label offset introduced by a an SLD label anchor point and/or label displacement property.

Bug fixLuciadFusion

TLcdDomainObjectContext: The equals method did not use an identity check to compare domain objects. As a result, contexts with different ILcdShape instances as domain object could be indicated as equal. It now compares the different domain objects using an identity check.

Bug fixLuciadFusion

LF-1843
Modified the sample deployment script to include lcd_geoid_resources.jar by default. See the commented out exclude attribute in the obfuscate target within build/fusionplatform/deploy_fusionplatform_service.xml.

Bug fixLuciadFusion

LF-1342
Several WFS functional and interoperability fixes have been made.
  • Removed the enableFeatureTypeNameCompatabilityMode option, now the default behavior should be similar to the behavior that happened when it existed and was set to true.
  • Allow multiple data sources within a product that is included in a WFS service. Feature type names will be a combination of product and data name.
  • Fixed an issue with quick service creating a product with a name that contains dashes which are not valid in the resulting WFS XML.
  • Fixed an issue with GeoMedia not being able to read the LuciadFusion WFS because the namespace definitions don't match between GetCapabilities and DescribeFeatureType.
  • Fixed an issue with ArcGIS not able to read 2.0.0 version of WFS because of not handling "(" separated feature types in DescribeFeatureType.

Bug fixLuciadFusion

LCD-10618, LCD-873, LCD-10797
Fixed a bug where TLcdLonLatEllipse#getBounds could return undersized bounds that would not contain the entire ellipse. Now the bounds calculation is more accurate and consistent with TLcdLonLatArc.

Bug fixLuciadFusion

LCD-10466
TLcdInputStreamFactory: can now create input streams for zipped data, independent of whether the data uses zlib/gzip compatible compression or not.

Bug fixTerrain Analysis Engine

Explicitly set the default elevation mode in TLspLOSCoverageStyle.Builder to ElevationMode.ABOVE_ELLIPSOID.

Bug fixDefense Symbology

LCD-11006
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
  • Single Fence
  • Double Fence
  • Double Apron Fence
  • Low Wire Fence
  • High Wire Fence
  • Antitank Ditch - Under Construction
  • Antitank Ditch - Complete
  • Wire Obstacle - Unspecified

Upgrade considerationLuciadFusion

The eye-dome lighting technique will be enabled by default when visualizing point cloud data sets. To disable, a custom TLspPointCloudStyle should be used for 3DTile point clouds, or a custom TLspPlotStyle for LIDAR point clouds.
For more details, see the how-to article on eye-dome lighting.

Upgrade considerationLuciadFusion

LCD-10695
The Java version handling in TLcdSystemPropertiesUtil has been improved with a new method isJavaVersion(JavaVersion). Java version check methods below the minimum Java requirement have been removed.

Upgrade considerationLuciadFusion

TLcdOGCFilterFactory: the public constructor has been removed. This class only contains static factory methods and was never designed to be instantiated. To make the intended usage of this class crystal clear, the public constructor has been removed.

Upgrade considerationLuciadFusion

LCD-7667
A new version of the JAI ImageIO library is used.
  • Fix for possible IndexOutOfBoundsException when encoding a GeoTIFF with JPEG compression.

Upgrade considerationLuciadFusion

LCD-10754
Removed com.luciad.view.lightspeed.action.TLspDeleteSelectionAction in favor of com.luciad.view.TLcdDeleteSelectionAction. This is an incompatible change which can be resolved by using TLcdDeleteSelectionAction.

Upgrade considerationAviation Standards

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

2019.0

2019.0.11

ImprovementLuciadFusion

LCD-10996
TLspLabelPainter has the behavior to not display labels when they are obscured by the terrain. It is now possible to disable this behavior, i.e. allow labels to remain visible, even if their anchor is located behind the terrain. See TLspLabelPainter#setUseTerrainForCulling.

ImprovementLuciadFusion

LCD-10981
The TLcdGXYRoundedPointListPainter did not correctly paint polygons that crossed the date line.

ImprovementLuciadFusion

LCD-11004
Improved TLcdBoxIcon's frame in HiDPI rendering.

ImprovementLuciadFusion

LCD-11003
TLcdSymbol: improved anti-aliased/HiDPI rendering of several shape types.
TLcdRotatingIcon also works better with anti-aliased/HiDPI symbols.

ImprovementLuciadFusion

LCD-10973
Improved the accuracy of TLcdLonLatParser.

Bug fixLuciadFusion

LCD-11010
Fixed a potential synchronization issue between the calling thread and the Swing EDT in TLspExternalView#display().

Bug fixLuciadFusion

LCD-11005
It is now possible to enable only a subset of the navigation actions when the combined gestures property is activated using the TLspTouchNavigateController#setCombineGestures(true). See the javadoc of setShouldRotate, setShouldPan, setShouldZoom and TLspTouchNavigateController(aShouldRotate, aShouldZoom, aShouldPan) for more details.

Bug fixLuciadFusion

LCD-10984
TLcdGXYLabelPainter and TLcdGXYPolylineLabelPainter's clone method didn't do a correct deep clone of all fields. This could lead to incorrectly painted labels when enabling asynchronous painting.

Bug fixDefense Symbology

LCD-10997
Fixed an issue that caused a VM crash when closely zooming in on the Line Of Contact symbol with planned status in a GXY view.

Bug fixDefense Symbology

LCD-10986
Fixed caching issue which could cause the default symbology style configured on the TLcdMS2525bGXYLabelPainterProvider to be used by painters provided by the TLcdMS2525bGXYPainterProvider and vice versa. Same issue has also been resolved for TLcdAPP6AGXYLabelPainterProvider and TLcdAPP6AGXYPainterProvider

Bug fixDefense Symbology

LCD-10964
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
  • Follow And Assume
  • Follow And Support
  • Direction Of Attack - Main Attack
  • Direction Of Attack - Supporting Attack
  • Abatis
  • Crossing Site/Water Crossing - Lane
  • Crossing Site/Water Crossing - Ferry
  • Crossing Site/Water Crossing - Raft Site
  • Foxhole, Emplacement or Weapon Site
  • Linear Target
  • Linear Smoke Target
  • Final Protective Fire
  • Line Of Contact

Bug fixDefense Symbology

LCD-10983
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
  • Seize
  • Withdraw
  • Withdraw Under Pressure
  • Relief In Place

Bug fixDefense Symbology

LCD-10977
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
  • Isolate
  • Occupy
  • Retain
  • Secure

Upgrade considerationLuciadFusion

LCD-10526, LCD-10974
To simplify implementing an ILcdGXYChainableController, the view no longer dispatches the same event twice to controllers implementing both MouseListener/MouseMotionListener/MouseWheelListener and ILcdAWTEventListener. For example, the view used to dispatch a mouse drag event to both handleAWTEvent and mouseDragged. This is no longer the case.
If you have a controller like this, you can dispatch events yourself as follows:
      @Override
      public void handleAWTEvent(AWTEvent aEvent) {
        // delivers drag events to #mouseDragged, wheel events to #mouseWheelMoved, and so on
        com.luciad.gui.TLcdAWTUtil.dispatchAWTEvent(aEvent, this);
      }
    

2019.0.10

ImprovementDefense Symbology

LCD-10952
Added Hostility indication labels (ENY) to the "Obstacle Effect - Block" symbol

ImprovementDefense Symbology

Increased spacing between letters of ENY decorations on line symbols in GXY views.

Bug fixLuciadFusion

LCD-10966
TLcdServiceLoader no longer throws an exception when the current thread's context class loader is null.

Bug fixLuciadFusion

LF-1858
Fixed Fusion Studio notifications when deployed in WebLogic server.

Bug fixLuciadFusion

LCD-10960
Fixed the handling of the SLD label placement offset for lines in Lightspeed views: while the implementation previously positioned the label at a random side of the shape depending on the current view extent, it now takes the offset sign into account to consistently position the label at one side of the shape.

Bug fixLuciadFusion

LCD-10959
Improved the TLcdGeoTIFFModelEncoder#canExport to check that the image within the model does have values of type double. If this is the case the method returns false as encoding such images is not supported by the GeoTIFF encoder.

Bug fixAdvanced Raster Services

LF-1855
The ECW decoder now actively loads the Microsoft Visual C++ runtime libraries on Windows.

Bug fixDefense Symbology

LCD-10893
Fixed ArrayIndexOutOfBoundsException that could occur when editing the second to last sector of "Weapon/Sensor Range - Sector Fan" symbols with an uneven number of points in their point list.

Bug fixDefense Symbology

LCD-10936
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
  • Fortified Line
  • Bearing Line
  • Retirement
  • Antitank Wall
  • Obstacle Restricted Area
  • Main Supply Route
  • Alternate Supply Route
  • Explosive State of Readiness 1 (Safe)
  • Explosive State of Readiness 2 (Armed But Passable)
  • Roadblock Complete
  • Single Concertina
  • Double Strand Concertina
  • Triple Strand Concertina

Bug fixMaritime Standards

LCD-10948
ECDIS S52 layers didn't pick up the value from setInteractMargin properly for text elements. This is now resolved.

2019.0.09

ImprovementMaritime Standards

LCD-10919

Added support for InlandECDIS (IENC) cells that contain regular ENC data.

While this is not according to the specification, data providers often do this. For example, often IENC cells contain both "achare" objects (part of IENC) and "ACHARE" objects (part of regular ENC).

The IENC object classes and attributes now include those from ENC that were not already part of the IENC spec. Similarly, the IENC visualization rules now include the full S-52 rules as a fallback.

If you have IENC cells or catalogs/multicatalogs with only IENC cells, all this will be picked up automatically.

If you have catalogs or multicatalogs that contain cells of product type IENC as well as regular ENC, you have to manually force IENC. This is because the cells themselves contain this information, and are lazy-loaded.

      // Decode the model
      TLcdS57CatalogueModelDecoder decoder = TLcdS57ProductConfiguration.getInstance(ELcdS57ProductType.IENC).createCatalogueModelDecoder();
      decoder.setLoadingPolicy(SOFT_REFERENCED);
      ILcdModel model = decoder.decode("/path/to/CATALOG.031");
    

Bug fixLuciadFusion

LCD-10945
In a Lightspeed view, imagery with an IndexColorModel could sometimes be visualized with incorrect colors.

Bug fixLuciadFusion

LCD-10944
Improved the robustness of ALcdImageMosaic to cope with small inaccuracies between the image bounds and the mosaic's tile grid bounds.

Bug fixLuciadFusion

LF-1856

ILcdLoggerFactory and its implementations are no longer obfuscated so that they can be picked up by the service loader.

You don't need to do anything when you obfuscate your application and include our luciadlightspeed.pro file in your Proguard configuration, as is recommended.

If you use your own Proguard configuration file which does not include luciadlightspeed.pro, you need to add the following lines:

      -keep interface com.luciad.util.logging.ILcdLoggerFactory
      -keep class * implements com.luciad.util.logging.ILcdLoggerFactory
    

Bug fixLuciadFusion

LCD-10918
SLD raster rendering in GXY ignored any alpha band in the source image in case no channel selection and/or normalization was defined.

Bug fixDefense Symbology

LCD-10929
Fixed an issue that affected GXY views where the labels of some line symbols were not properly aligned with the stroke of the symbol in some view projections.

Bug fixMaritime Standards

LCD-10943
The InlandECDIS (IENC) visualization rules had swapped the "symbolized boundaries" with the "plain boundaries". This has now been corrected.

Bug fixMaritime Standards

LCD-10937
Fixed an issue when applying cell updates that referred to non-existing fields in the base cell. This caused errors when loading these cells. Now, the cells are loaded and the update is applied.

Upgrade considerationLuciadFusion

LCD-10871
The fillOutlineArea property of TLcdGXYImagePainter is now set to false for models with multiple images when created with TLcdGXYImagePainter.create. Some layer factories use this method internally. The result is that outlines will no longer be filled for these cases. This avoids cluttering the view with red hatched rectangles in areas where they overlap.

Upgrade considerationLuciadFusion

LF-1706
Remove duplicate, older versions of slf4j-api and spring-tx. The removed jars are slf4j-api-1.7.22.jar and spring-tx-5.1.1.RELEASE.jar.

2019.0.08

Bug fixLuciadFusion

LCD-10915
Fixed a potential deadlock when initializing a TLspSwingView in certain circumstances.

Bug fixLuciadFusion

LCD-10914
3D Tiles visualisation: Fixed an issue where TLcdOGC3DTilesModelDecoder would not propagate correctly the transformation matrix from the tileset.json to the meshes.

Bug fixLuciadFusion

LCD-10905
Encoding a ALcdImage with the TLcdGeoTIFFModelEncoder could fail when the image only had ALcdBandMeasurementSemantics and no ColorModel could be associated with it. This could happen for example when applying image operators on images.

Bug fixLuciadFusion

LCD-10870
Calling TLcdDatabaseModel#clearCache now correctly invalidates the cache instead of only discarding local changes.

Bug fixDefense Symbology

LCD-10902
Fixed a performance issue that occurred on GXY views when zooming in on "Forward Line of Own Troops (FLOT)" and "Fortified Area" symbols.

2019.0.07

Bug fixLuciadFusion

LCD-10897
The clone method of the following painters didn't do a correct deep clone of all fields. This could lead to incorrectly painted labels when enabling asynchronous painting.

Bug fixLuciadFusion

LCD-10894
The TLcdTFWRasterModelDecoder did not take the provided default model reference into account as fall-back when it was provided through the class constructor.

Bug fixLuciadFusion

LCD-10879
Transforming points from a geocentric reference to a geocentric reference with an other unit of measure could result in incorrect results.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-10872
Added the missing exercise indicator (X) for the MIL-STD-2525 C 'Moored Exercise Mine' symbol for the Unknown, Pending, Friend, Assumed Friend, Neutral and Hostile affiliations.

Bug fixDefense Symbology

LCD-10883
The affiliation and alternate fill color property could not be configured for the APP-6/MIL-STD-2525 Equipment symbol.

2019.0.06

ImprovementAviation Standards

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

Bug fixLuciadFusion

LF-1832
Fixed issues with LuciadFusion Studio compatibility with Microsoft Edge.

Bug fixLuciadFusion

LF-1840
Fixed the file info error message for SLD decoding failures to use the more descriptive style failure message.

Bug fixLuciadFusion

LCD-10779
TLcdGXYOnPathLabelingAlgorithm sometimes put labels at the wrong side of the line when using AlignmentMode#LEFT or AlignmentMode#RIGHT.

Bug fixLuciadFusion

LCD-10865
A WFS 2.0 GetFeature request containing a PropertyName filter and sent as an XML POST request triggered a ClassCastException.

Bug fixMaritime Standards

LCD-10868
Scale ranges set on the display settings after creating an S-52 GXY layer were not picked up. They were only picked up if set before creating the layer. This is now resolved: you can use TLcdS52DisplaySettings.setScaleRanges at any time, and your TLcdS52GXYCatalogueLayer will apply the change immediately.

2019.0.05

ImprovementLuciadFusion

LF-1520
Some improvements have been made to improve the performance of LuciadFusion Platform. With these improvements, the application communicates less with the database, which improves the performance of the application.

ImprovementLuciadFusion

LF-1335, LF-1738
The deployment build script (deploy_fusionplatform_service) does not compile the classes under the samples folder anymore, sample classes aren't added to the war and zip files that the script creates.

ImprovementLuciadFusion

LCD-10603
TLspInteractiveLabelsController was updating labels regardless of which view they belonged to. The controller now only updates labels that belong to the view it is configured for.

ImprovementLuciadFusion

The API to create new on-map navigation controls has been simplified:

ImprovementLuciadFusion

LCD-10572
It is now possible to pan a 2D map with two fingers without jitter if the two fingers are close enough to each other. See TLspTouchNavigateController#set2DPanDistanceThreshold for more details.

Bug fixLuciadFusion

LCD-10863
TLcdXYEllipse and TLcdLonLatEllipse: inversed the results of the getTangent2D method to match the direction (counter-clockwise) of the computePointSFCT method.

Bug fixLuciadFusion

LCD-10814
Some GeoTIFF files with multi-band data could not be decoded in a headless environment. This was due to the default value for optimize.raster.color.model which was true but cannot be used in a headless environment. The implementation has been fixed and the above flag defaults value has been set to false such that the behavior is the same in an environment with or without graphics.

Bug fixLuciadFusion

LF-1521
When creating a service from a data item and the user cancels, don't create the product.

Bug fixLuciadFusion

LCD-10795
TLspPinLineStyle#getPinVisibilityThreshold() is now evaluated correctly for pins that use PinEndPosition.MIDDLE_OF_BOUNDS.

Bug fixLuciadFusion

LF-1821
Fixed an issue where the deployment build script deploy_fusionplatform_service failed when the src folder containing custom classes was found.

Bug fixAdvanced GIS Engine

LCD-10409
Fixed a bug in Ellipsoidal Basic Binary Topology where checkTopology and lineIntersectionSFCT results would contradict.

Bug fixDefense Symbology

LCD-10453
Changed the label painter for Boundary lines symbol. The unique designation modifier will now be moved along the boundary so it always remains in view instead of being repeated when zooming in. This change brings the functionality of GXY views in line with Lightspeed views and resolves a number of performance issues and bugs in GXY views.

Bug fixDefense Symbology

LCD-10788
Fixed a regression which caused the painting of the APP-6A/B/C/D "Security (Screen)", "Security (Guard)" and "Security (Cover)" symbols to be broken in GXY views.

Bug fixDefense Symbology

LCD-10822
Fixed a regression which caused movement direction arrows to be painted in Lightspeed views when they were disabled through styling.

Bug fixDefense Symbology

LCD-10820
Fixed issue that caused military icon symbols configured with an invalid affiliation to be painted as a black square and also caused various NullPointerExceptions to be thrown.

Bug fixMaritime Standards

LCD-10847
Scale ranges or scale denominators set on the display settings after creating an S-52 GXY layer were not picked up. They were only picked up if set before creating the layer. This is now resolved: you can use TLcdS52DisplaySettings.setScaleDenominators at any time, and your TLcdS52GXYCatalogueLayer will apply the change immediately.

Bug fixMaritime Standards

LCD-10659
Fixed an issue when applying cell updates that referred to non-existing fields in the base cell. This caused errors when loading these cells. Now, the cells are loaded and the update is applied.

2019.0.04

ImprovementLuciadFusion

LF-1827
LuciadFusion now reports when the fusion.studio.configuration.datastore property is not set. The prevents LuciadFusion from using an incorrect path for e.g. the uploads directory.

ImprovementLuciadFusion

LCD-10131
Fixed an issue where the LASzip file was displayed in reverse color when both low and high bits of a 16-bit color were populated.

ImprovementLuciadFusion

LCD-10805
TLcdCassiniSoldner was added. This projection contains ellipsoidal cassini calculations. TLcdCassini has not been modified. It still only supports spherical calculations. TLcdWKTReferenceParser and TLcdEPSGReferenceParser have been modified to support this new projection.

ImprovementLuciadFusion

LCD-10571
The distance threshold at which touch navigation switches between rotating and pitching in 3D, can now be customized. See TLspTouchNavigateController#setPitchDistanceThreshold for more details.

ImprovementLuciadFusion

LF-1730
Show "Loading..." on Style detail page when the style information is being loaded from the server.

ImprovementLuciadFusion

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

Bug fixLuciadFusion

LCD-10803
Performing a GetFeatureInfo request on a queryable raster layer would fail for the text/plain info format.

Bug fixLuciadFusion

LF-1677
Add hatching to bounds feature drawn in the Studio preview map when the actual data isn't previewed, and removed the "almost world bounds" check which prevented the data/bounds from being rendered when the data bounds were close to world extents.

Bug fixLuciadFusion

LCD-10753
3D Tiles conversion: Reduced the memory usage of the conversion from OSGB to 3DTiles.

Bug fixLuciadFusion

LCD-10793
TLspTouchNavigateController#getMaximumNumberOfPoints incorrectly reported that it could handle up to 10 touch points. TLspTouchNavigateController does not handle more than 2 touch points.

Bug fixLuciadFusion

LF-1820
Fixed an issue with services having NULL public_ids when migrating from older versions. During the upgrade, all services with NULL public_ids will now be given a unique one.

Bug fixLuciadFusion

LCD-10808
A WFS Transaction Update request was implemented by a delete and insert of respectively the original and updated object, instead of an actual update of the original object. This could trigger unexpected object id changes in case of a database back-end.

Bug fixLuciadFusion

LF-1724
Close the user tour when the user presses ESCAPE

Bug fixLuciadFusion

LCD-10800
The SLD normalize improvement LCD-10441 caused a regression where an SLD raster symbolizer with an RGB channel selection containing the same band would throw a NullPointerException.

Bug fixLuciadFusion

LCD-10796
TLcdLonLatGridPainter: fixed a regression introduced in 2018.1 that caused vertical labels not to snap to the edge of the view anymore.

Bug fixLuciadFusion

LF-1470
Close the typeahead suggestions list if the fetch suggestions request returns error

Bug fixLuciadFusion

LF-1819
Fix issue with database validation failures happening when changing the catalog database username.

Bug fixLuciadFusion

LF-1689, LF-1753
Moved some hard-coded UI text to the translation files so that it can be localized.

Bug fixLuciadFusion

LF-1797
Fixed an issue where the product validation information was missing after updating the metadata of the product. This prevented creating a service from the product in some cases.

Bug fixLuciadFusion

LF-1779
File Server: Fixed an issue where the file download links are corrupted when a context path is used.

Bug fixDefense Symbology

LCD-10809
Fixed an issue with MIL-STD 2525 D symbols which only defined a single possible value for status or standard identity 2 modifiers. For example, the "Friendly Planned or on Order Area" symbol defines "Friend" as the only possible standard identity 2 modifier and "Planned/Anticipated/Suspect" as only possible status. The issue caused these symbols to be painted with incorrect affiliation color and status stroke. This issue also caused the values of these modifiers to be empty in the properties customizer panel in the military symbology sample.

Bug fixDefense Symbology

LCD-10679
Changed the following display name of modifiers
  • MIL-STD-2525 B/C/D
    • 'Reinforced or Detached' got renamed to 'Reinforced or Reduced'
  • APP-6 C/D
    • 'Special Headquarters' got renamed to 'Named Headquarters'

Upgrade considerationLuciadFusion

LCD-10798
The laszip4j library has been upgraded to 0.7.

2019.0.03

ImprovementLuciadFusion

LCD-10782
TLspTouchSelectEditController now allows configuring its select controller model.

ImprovementLuciadFusion

LCD-4001
The TAB raster model decoder provides a more clear message in case the TAB file may be for MapInfo MAP (vector) files.

ImprovementLuciadFusion

LCD-10239
The GeoTIFF model decoder documentation contains information on the heuristic used to mark data as elevation.

ImprovementLuciadFusion

LCD-9862
Removed obsolete section in OGC server documentation regarding setting up of native libraries. Native libraries used within LuciadLightspeed / LuciadFusion are extracted from jars automatically.

ImprovementLuciadFusion

LCD-10740
The SERVICE request parameter validation check in the WMS, WFS, WMTS, WCS and CSW server has been made case insensitive to improve interoperability with non-compliant OGC web service clients.

ImprovementMaritime Standards

LCD-10708
Improved rendering of TLcdS52FillStyle on HiDPI displays. You should take into account HiDPI scaling if you are writing your own ILcdS52FillStyle implementations.

Bug fixLuciadFusion

LCD-10748
TLcdMeasureFormatUtil now formats flight levels correctly, using an "FL" prefix.

Bug fixLuciadFusion

LCD-9815
Model change events must happen on the Event Dispatch Thread (EDT). The WMS client sample now fulfils this expectation.

Bug fixLuciadFusion

LCD-10781
A regression in LuciadLightspeed 2019.0 prevented TLspSelectController from calling its protected methods.

Bug fixLuciadFusion

LCD-10783, LCD-7660, LCD-7633
The handling of WFS 1.1 GetFeature requests could trigger a service exception report in case of a POST request with a BBOX filter containing coordinates outside the coordinate reference's projection bounds.

Bug fixLuciadFusion

LCD-10780
TLcdAltitudeFormat no longer adds a space after the flight level prefix FL.

Bug fixLuciadFusion

LCD-10756
TLcdWFSProxyModelFactory and TLcdWFSProxyModel#Builder did not take into account a configured model reference parser when decoding WFS response data.

Bug fixLuciadFusion

LCD-10648

TLspTouchNavigateController now extends ALspConfinedTouchController. This fixes a bug where calling startInteraction or terminateInteraction would call those same methods multiple times on the rest of the controller chain.

This could cause problems in any of the appended controllers. For example, when a TLspKeyActionController was appended to it, it would trigger a NullPointerException.

Bug fixLuciadFusion

LCD-10657
GML model encoders: encoding an empty model could sometimes result in an exception stating "No compatible elements to export".

Bug fixLuciadFusion

LCD-10746
Resolved a performance regression when rendering halo's in HiDPI displays.

Bug fixLuciadFusion

LCD-10744
TLcdWKTReferenceParser didn't interpret the latitude origin for Cassini projections correctly. This also impacted TLcdEPSGReferenceParser for EPSG references EPSG:2314, EPSG:3068, EPSG:3140, EPSG:3377-3385, EPSG:4390-4398, EPSG:24500, EPSG:28191, EPSG:28193 andEPSG:30200.

Bug fixDefense Symbology

LCD-10250
Fixed issue with the rendering of Cover, Screen and Guard symbols in APP6 symbologies in GXY views.

Bug fixDefense Symbology

LCD-10250
An issue has been fixed that caused the labels of area symbols to be placed on the stroke instead of inside the area when label placement was set to be centered through styling. All area symbols have been converted to a new GXY painter in order to fix the label placement for area symbols in GXY views.

Bug fixDefense Symbology

LCD-10745
Fixed a regression that was introduced by the fix for LCD-10640, causing symbols to be painted with an extra line to the symbol's start point in a GXY view.

Bug fixDefense Symbology

LCD-10743
Fixed issue that caused some rounded polyline symbols to be painted with straight lines in GXY views.

Upgrade considerationLuciadFusion

LCD-10792
TLspTouchNavigateController: the setPitchSensivityFactor method which was accidentally added in version 2019.0.02 has been removed again.

2019.0.01

ImprovementLuciadFusion

LCD-10719
The WCS client API now automatically uses sensible settings for TLcdWCSProxy's tiled multilevel raster structure, based on the coverage bounds. This helps to efficiently query WCS raster data and avoids manual configuration of the raster structure settings (tile width, tile height, rows, columns ...).

ImprovementLuciadFusion

TLcdGXYSurfacePainter now supports creation of a surface, provided that it has an exterior ring and no inner rings.

Bug fixLuciadFusion

LCD-10730
TLspSelectController was no longer able to select objects with the rectangle selection feature.

Bug fixLuciadFusion

LF-1790
Removed -XX+UseParNewGC java command line parameter from the Fusion deployment startup scripts, which prevented the server from starting when running Java 11.

Bug fixLuciadFusion

LF-1791
Fixed an issue that prevented data from being added to an existing product in LuciadFusion Studio.

Bug fixLuciadFusion

LCD-10689
When running LuciadLightspeed on a 32-bit JVM, functionality that depends on OpenCL could cause exceptions, e.g. when using an ALcdImageOperator.

Bug fixLuciadFusion

LCD-10701
Improved rendering of SLD icons on HiDPI displays.

Bug fixLuciadFusion

TLcdIconFactory.LINK_DECO_ICON: made the 16x16 icon consistent with the other icon sizes.

Bug fixLuciadFusion

LCD-10688
TLspIconStyle: icons did not adapt correctly when switching between a HiDPI and non-HiDPI screen. As a result icons would appear to large on the non-HiDPI screen or to small when switching to a HiDPI screen.

Bug fixLuciadFusion

LCD-10687
TLcdImageIcon: the icon would not be painted with the correct resolution when switching between a HiDPI and a non-HiDPI display.

Bug fixLuciadFusion

LCD-10686
TLspSLDStyler configured an incorrect labeling algorithm for line and polygon symbolizers. This would result in polygons with labels on the outline of the polygon instead of labels inside the polygon.

Bug fixDefense Symbology

LCD-10714
Fixed issue where an exception was thrown during creation of the MIL-STD-2525 D symbol "Rectangular Target - Single Target (Aegis Only)" in a GXY view.

Bug fixDefense Symbology

LCD-10698
Fixed issue with icon symbols of the APP6-C standard where the country code label would appear in multiple places around the symbol.

2019.0

ImprovementLuciadFusion

The lightspeed.imageprojection sample has been modified to show a sample video draped onto the terrain instead of a single image icon.

ImprovementLuciadFusion

Improved the rendering of both GXY and Lightspeed views on High DPI screens. Accordingly, TLcdImageIcon now supports multiple versions of an icon for different resolutions and uses the proper one according to the DPI scale of the screen.

Note:In most Linux distributions, Java does not pick up the operating system's configured scale factor. You can use the -Dsun.java2d.uiScale VM parameter to manually set the scale factor.

Please refer to the articles Support high-resolution displays on a GXY map and Support high-resolution displays on a Lightspeed map for more information.

ImprovementLuciadFusion

LCD-10410
TLcdWFSDataSource.Builder now allows to set a QName as feature type name, next to the existing capability to set a String. This better aligns with the OGC WFS specification, which focuses on the use of qualified names for feature types.

ImprovementLuciadFusion

LCD-3558
Improved the performance of adding and removing (many) layers to a view.

ImprovementLuciadFusion

ILcdPointList now implements all methods of ILcdPointList2. As such, there is no need to use the latter anymore.

ImprovementLuciadFusion

The WFS client model decoder class TLcdWFSModelDecoderDecorator can now be instantiated with a custom ILcdOWSTransport. Example uses cases include the configuration of authentication credentials or request / response interception.

ImprovementLuciadFusion

Visualizing Bing Maps data has been simplified: Adding the Bing Maps logo and copyright information on your view is also simplified:
  • Introduced TLcdBingMapsCopyrightIcon#asComponent method allowing to convert the copyright icon in a component which can be added to a Swing UI
  • Introduced the TLcdBingMapsLogoIcon class (including a similar asComponent method), making it easy to add the Bing Maps icon to a Swing UI

ImprovementLuciadFusion

You no longer have to create and set up a TLcdGXYAsynchronousPaintQueueManager to use asynchronous layer wrappers in an ILcdGXYView.

ImprovementLuciadFusion

It is now possible to add products containing elevation data to an LTS service. The elevation data will be fused into a LuciadFusion coverage before it is served. A preprocess job will be created for every elevation data product in an LTS service to perform the fusing. The fused output of an elevation data product is optimized to be consumed by LuciadRIA.

ImprovementLuciadFusion

Luciad Fusion system administrators can now configure Fusion to use an Oracle database (versions 11g, 12c and 18c) for the catalog (see config/application-fusion.development.yml for details).

ImprovementLuciadFusion

Luciad Fusion system administrators can now configure Fusion to use a SQL Server database (versions 2012, 2014, 2016 and 2017) for the catalog (see config/application-fusion.development.yml for details).

ImprovementLuciadFusion

LCD-10526
The new TLcdGXYNavigateController allows you to zoom using the mouse wheel and pan by dragging the mouse. TLcdGXYSelectController2, TLcdGXYEditController2, TLcdGXYNewController2, TLcdGXYInteractiveLabelsController, TLcdAdvancedMapRulerController, and TLcdMagneticNorthGXYController now implement ILcdGXYChainableController, so you can simply append a navigate controller to add zoom and pan behavior.

ImprovementLuciadFusion

TLcdGXYLayer now configures a more accurate pen by default. If you need to switch back to the previous implementation, you can do so by calling layer.setGXYPen(new TLcdGXYPen());.

ImprovementLuciadFusion

The Studio web front end can now be customized through configuration files. The theme configuration file can be reloaded automatically after any changes have been made, the user interface can be adjusted automatically according to the new styling values.

ImprovementLuciadFusion

Raster painting performance has been improved in Lightspeed views for imagery that has an IndexColorModel and for RGB images without an alpha channel. The performance improvement will be automatically applied when possible, this requires no configuration.

ImprovementLuciadFusion

LF-1339
Data and styles uploaded in the LuciadFusion Studio web front end can now be deleted. Previously it was not possible to delete uploaded data or styles. The corresponding files will be deleted from the uploads folder if a data or style is deleted. Note that deleting a data or style can impact products or services.

ImprovementLuciadFusion

TLcdCSVModelDecoder now uses the TLcdHiddenDataPropertyAnnotation to annotate its geometry property and its WKT property. These properties will no longer be revealed to the end-user in Sample UI nor in Lucy UI.

ImprovementLuciadFusion

LF-1451
Crawl jobs can now be configured to delete Data and Styles if the corresponding files are found to be deleted when crawling. This can be enabled by setting the crawl job property ignoreDeletedFiles to false using the REST API or changing the 'Deleted Files' option of a crawl job to 'Detect' in the web interface.

ImprovementLuciadFusion

LF-1528, LF-1450, LF-1223
Add the ability to order the products within a service from within the LuciadFusion Studio web front end.

ImprovementLuciadFusion

LCD-10243
LAS and LAZ files which only contain black colors now will be treated as non-colored data.

ImprovementLuciadFusion

LF-1627
A new configuration property has been added to allow users to define a directory where the temporary preprocessing files will be stored in. The point cloud preprocessor creates some intermediate results during the preprocessing and deletes them afterwards, these files will be stored in this directory. See the fusion.ogctilesservice.preprocessorTempPath property in the application-fusion.common.yml config file for more information.

ImprovementLuciadFusion

LCD-9956
ILcdEllipsoid: introduced ILcdEllipsoid#geoc2height to calculate the height above the ellipsoid for a geocentric point.

ImprovementGraph and Routing Engine

TLcdPartitionedShortestRoutePreprocessor: the return value of the preprocess method now uses generics.

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-10640
Painting of some military symbols in GXY views now starts once the first point has been placed, as opposed to once the minimum number of points for that symbol has been placed. Which gives quicker feedback as to how the symbol would look during creation.

ImprovementDefense Symbology

Editing behaviour of circular symbols has been improved so that moving the center point now translates the whole symbol instead of only the center point.

ImprovementDefense Symbology

LCD-10432
The interfaces ILcdEditableAPP6ACoded and ILcdEditableMS2525bCoded now extend the interface ILcdCloneable interface instead of the Cloneable interface.

ImprovementDefense Symbology

LCD-10429
The classes TLcdAPP6ADataTypes and TLcdMS2525bDataTypes have now been marked as final to make it clear they should not be extended. Their default constructor was already private, meaning it was already impossible to extend these classes. This change should thus not have any impact on existing applications.

ImprovementDefense Symbology

Patterns and strokes of tactical graphics in a Lightspeed view now scale with the configured line width. This improves visualization on HiDPI devices.

Bug fixDefense Symbology

LCD-10642
Fixed issue that caused labels to be cut of when label font scaling was enabled in styling. The scaling calculation has also been changed os it is consistent across all symbols. Specifically the scaling is always made based on a combination of label font size and symbol size configured in styling. See ILcdMS2525bStyle#getLabelFont, ILcdMS2525bStyle#getSizeSymbol, ILcdMS2525bStyle#isLabelFontScalingEnabled for MIL-STD-2525 symbologies. See ILcdAPP6AStyle#getLabelFont, ILcdAPP6AStyle#getSizeSymbol, ILcdAPP6AStyle#isLabelFontScalingEnabled for APP6 symbologies.

Upgrade considerationLuciadFusion

The lib directory now contains a newer version of the httpmime jar (httpmime-4.5.3.jar -> httpmime-4.5.6.jar). The lib directory now contains a newer version of the httpclient-cache jar (httpclient-cache-4.5.3.jar -> httpclient-cache-4.5.6.jar).

Upgrade considerationLuciadFusion

The lib directory now contains a newer version of the QueryDsl jars (querydsl-*-4.1.3.jar -> querydsl-*-4.2.1.lcd-2.jar). The lib directory now contains a newer version of the Liquibase jar (liquibase-core-3.5.3.jar -> liquibase-core-3.6.3.jar).

Upgrade considerationLuciadFusion

Lightspeed views now support high DPI rendering. This means that fonts, icons and other map elements will be automatically resized in proportion to the DPI scale factor configured in the operating system. Due to the way high DPI support is implemented in Swing, however, applications that use a Lightspeed view now essentially have an additional coordinate system to deal with, which we refer to as "toolkit coordinates". In most scenarios this is merely an implementation detail. Applications may need to be adjusted to work correctly with DPI scaling if they

Please refer to the javadoc of ALspViewXYZWorldTransformation for more information on toolkit coordinates and DPI scaling.

Upgrade considerationLuciadFusion

The method TLcdWFSDataSource#getFeatureTypeName() now returns a QName instead of a String, to better reflect the focus of the OGC WFS specification on the use of qualified names for feature type names. Existing implementations can be updated by simply relying on the toString method to convert the QName to a String.

Upgrade considerationLuciadFusion

LCD-10581
The return types of some of the methods of the following classes were narrowed from Enumeration to ILcdAutoCloseableEnumeration. The new return type allows clients to close enumerations so resources can be cleaned up.

Upgrade considerationLuciadFusion

TLcdIconFactory.DRAW_VARIABLE_BUFFER_ICON has been removed since it was duplicating the TLcdIconFactory.DRAW_VARIABLE_WIDTH_BUFFER_ICON.

Upgrade considerationLuciadFusion

TLcdGXYSelectController2 now only draws a multi-select rectangle when holding down the shift key. This makes it trivial to add pan behavior by appending TLcdGXYNavigateController. To revert the previous behavior, call selectController.setMultiSelectModifierKey(0);.

Upgrade considerationLuciadFusion

ALspDensityStyle.Builder and subclasses: the public constructors have been removed. Creating your own density style (builder) instances was never supported. Removing the constructors makes this clear.

If you called the public constructor of TLspDensity...Style.Builder, use the TLspDensity...Style#newBuilder method instead.

Upgrade considerationLuciadFusion

LCD-10486

ILcdGXYPen and ILcdAWTPath now support double coordinates to improve precision in HiDPI views. Hereafter methods accepting integer coordinates accept double coordinates.

In the unlikely event that you have a custom ILcdGXYPen or ILcdAWTPath implementation, you may have to modify it to use double coordinates as well, or alternatively convert the double coordinates to integers.

The following classses inherit ALcdGXYPen, and they were updated accordingly to be able to use double coordinates.

Accordingly, the type of the protected field ALcdGXYPen#fLastAWTPoint has been changed to TLcdXYPoint and the field has been renamed as fLastViewPoint.

Upgrade considerationLuciadFusion

LCD-9310, LCD-9763
A new version of the JAI ImageIO library is used.
  • Support for decoding TIFF files using floating point predictor 3 (TIFF Technical Note 3) has been added.
  • It improves on memory usage needed for reading the image metadata for large (Big)TIFF files when decoding the model.

Upgrade considerationLuciadFusion

All public classes that depended on the legacy 3D component were removed from the API.

Upgrade considerationLuciadFusion

LCD-10353
The class com.luciad.ogc.common.log.TLcdOGCLogFilter has been removed from the API. This Servlet Filter implementation was introduced in the past for request logging purposes but was never integrated / used in any of the OGC web service (WFS / WMS / WCS) implementations. The removal of this class should not pose any impact.

Upgrade considerationLuciadFusion

LuciadLightspeed now uses LWJGL as its Java binding for the OpenGL and OpenCL APIs (instead of the JogAmp libraries used by previous versions). This means that the following JAR files are no longer part of the release:

  • gluegen-rt-<version>.jar
  • gluegen-rt-<version>-natives-<platform>.jar
  • jocl-<version>.jar
  • jocl-<version>-natives-<platform>.jar
  • jogl-all-<version>.jar
  • jogl-all-<version>-natives-<platform>.jar

The following JARs have been added to replace the above:

  • lwjgl-<version>.jar
  • lwjgl-<version>-natives-<platform>.jar
  • lwjgl-jawt-<version>.jar
  • lwjgl-opencl-<version>.jar
  • lwjgl-opengl-<version>.jar
  • lwjgl-opengl-<version>-natives-<platform>.jar

Users upgrading from LuciadLightspeed V2018.x or earlier to V2019.0 may need to adapt their IDE settings or build scripts to reflect these changes.

Additionally, the migration to LWJGL has also brought with it some changes to how Lightspeed views deal with NIO buffers. The most visible result of these changes is that some data which was previously stored in native memory, will now be stored on the heap. As a result, upgrading an application from an older version of LuciadLightspeed to V2019.0 or newer may result in the application using less native memory and more heap memory. This may require some adjustment of JVM parameters, especially for applications that were tuned to run within tight memory constraints.

Finally, some of the API surrounding ALcdGLBinding has been changed incompatibly:

  • ILcdGLBuffer et al. have been removed. All API methods that used this interface now accept only java.nio.Buffer and/or primitive arrays. Applications that used these API methods will have to be updated accordingly. Note that the new class TLcdGLNIOBufferFactory should be used to allocate buffers that are intended to be passed to OpenGL calls.
  • The interface ILcdGL has been streamlined and now contains only the OpenGL core and compatibility profile API (i.e. no OpenGL extensions). It has, however, been updated to cover all OpenGL versions up to and including OpenGL 4.6. Applications that contain custom OpenGL code and use certain OpenGL extensions, can access these extensions by calling LWJGL directly. This is safe and easy to do since LWJGL exposes the OpenGL API entry points as static methods.
  • ILcdGL has also been stripped of method overloads that take a primitive array followed by an array offset parameter. Applications that use these methods should use an NIO buffer instead, positioned to the appropriate offset.
  • The methods makeCurrent(), canMakeCurrent() and release(), which were previously deprecated, have now been removed from ILcdGLDrawable. To execute code that requires an active OpenGL context, use the drawable's invokeLater() or invokeAndWait() methods instead.
  • The previously deprecated displayChanged() method has been removed from ILcdGLEventListener. The method was never called by any implementation of ILcdGLDrawable.

Upgrade considerationAdvanced GIS Engine

ILcd2DBasicBinaryTopology: the constants defined in this interface have moved to the super interface. The ILcd2DBasicBinaryTopology no longer has any functionality left and has been deprecated as a result. It might get removed in a future release.

Upgrade considerationDatabase Connectors

The lib directory now contains the latest SQL Server JDBC driver in mssql-jdbc.jar (version 7.2.1.jre8) replacing sqljdbc4.jar (version 4.0.2206.100).

Upgrade considerationDatabase Connectors

An upgrade to the latest Oracle JDBC Driver has introduced slightly stricter connection url validation. Users that are connecting to Oracle databases without specifying a SID and not including the trailing ":" will now get an error that the connection url is invalid.  The solution is to correct the connection string to include the trailing ":". This upgrade replaces oracle_jdbc.jar (version 11.2.0.1.0) with ojdbc8.jar and sdoapi.jar (version 12.2.0.1).

Upgrade considerationTerrain Analysis Engine

TLspLOSProperties has been made final. This class was never designed to be extended and to make that clear the class has been made final.

Upgrade considerationWeather & Environment Standards

LCD-10324
Added a dependency to a customized version of the thredds library, used to parse NetCDF and GRIB files.

Upgrade considerationDefense Symbology

LCD-10662
ILcdMS2525bStyle and ILcdAPP6AStyle now extend ILcdCloneable. TLcdDefaultMS2525bStyle and TLcdDefaultAPP6AbStyle already implemented ILcdCloneable so nothing should change if you were using those classes directly. If you have your own implementation of ILcdMS2525bStyle or ILcdAPP6AStyle you will need to add a clone() method.

2018.1

2018.1.16

Bug fixLuciadFusion

LCD-10628
ALcdTransformingModel: Fixed a memory leak that could occur when modifying elements in the original model.

Bug fixLuciadFusion

LCD-10139
Fixed an issue where the bounds of an ALcdImage might not get painted if the model contained multiple images with different references.

Bug fixLuciadFusion

LF-1770
Fixed an issue where adding a tile store file to already crawled coverages would cause LuciadFusion to create duplicate data of the coverages when crawling the tile store file.

Bug fixLuciadFusion

LCD-10554
TLspLabelPainter: labels using a TLspTextStyle with an underline text attribute could, in some case, be painted as a label without underline.

Bug fixLuciadFusion

LCD-10645
The TLcdGXYClippingPainterWrapper performed its clipping incorrectly when the clipping geometries passed world boundaries. This could happen for example when defining a clip shape in a Lambert Conformal Conic based coordinate reference and displaying the data on the map in an Equidistant Cylindrical projection.

Bug fixLuciadFusion

LCD-10650
TLcdGXYLabelPainter and its extensions could paint labels of non-selected objects in the selection color.

Bug fixLuciadFusion

LF-1755
Fixed an issue with the Studio datepicker. It was broken when Studio is translated to another language.

Bug fixLuciadFusion

LF-1756
Fixed an issue where the special keyword S52-SLD was missing from the capabilities of an WMS service if it contained ECDIS data.

Bug fixLuciadFusion

LF-1754
Fixed an issue where deleting a service could fail if the preprocess output for that service could not be deleted. LuciadFusion will now delete the service even if the deletion of the preprocess output fails. Deletion of the preprocess output failing usually indicates that those files are still used by some other process.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-10508
Fixed incorrect labeling for following MIL-STD-2525 C symbols:
Hierarchy Code Symbol Name
2.X.4.3.3.4 Censor Zone
2.X.4.3.3.4.1 Censor Zone, Irregular
2.X.4.3.3.4.2 Censor Zone; Rectangular
2.X.4.3.3.6 Critical Friendly Zone (CFZ)
2.X.4.3.3.6.1 Critical Friendly Zone (CFZ), Irregular
2.X.4.3.3.6.2 Critical Friendly Zone (CFZ), Rectangular

Bug fixDefense Symbology

LCD-10656
Relaxed the validation of possible label keys that can be set using TLcdDefaultAPP6AStyle#setLabelEnabled and TLcdDefaultMS2525bStyle#setLabelEnabled so all static fields of ILcdAPP6ACoded and ILcdMS2525bCoded respectively, can be passed to them without throwing exceptions. When passing a label key of a modifier that is not a label, this will have no effect on the styling of the symbol. Validation of label keys for TLcdDefaultAPP6AStyle#isLabelEnabledTLcdDefaultMS2525bStyle#isLabelenabled has also been replaced. these methods will no longer throw IllegalArgumentException for unknown label keys, they will return false for unknown labels instead.

Bug fixDefense Symbology

LCD-10610
Fixed issue where the method TLcdNVG20Point#getZ would always return 0.0, no matter what the value of the z property was set to. TLcdNVG20Point#getZ also always returned 0.0 when decoding an nvg file where the z attribute of the point element was not 0.0.

2018.1.15

ImprovementLuciadFusion

LCD-10631
The Lightspeed demo sample was removed from the release. Refer to the Lucy Showcase for integration samples and the samples and tutorials for simple use cases.

ImprovementLuciadFusion

LCD-10611
It is now possible to customize the distance at which the pin of a label disappears. See TLspPinLineStyle.Builder#pinVisibiltyThreshold.

Bug fixLuciadFusion

LCD-10584
Using TLspFixedOnPathLabelLocationProvider for curves with a large length (around 1000km or longer) resulted in unstable labels.

Bug fixLuciadFusion

LCD-10629
Bounds transformations from a reference with a cylindrical projection to a geodetic reference would sometimes result in bounds that are too small. This could result in data not being shown in the view when zooming out.

Bug fixLuciadFusion

LCD-10505
The axis-order was not correctly handled for all coordinate reference systems. For example the Polish CRS EPSG:2180 reverses the X and Y axis which needs to be reflected in the GetMap BBOX parameter.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixAviation Standards

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

2018.1.14

ImprovementLuciadFusion

LF-1757
Added a new method to the TLfnPointCloudPreprocessor class which returns the list of data sources.

ImprovementLuciadFusion

LCD-10612
The OGC Web Client HTTP(S) connection class TLcdOWSHttpTransport now automatically sets a "User-Agent" request header on each request (with as value the String Java followed by the Java version). This improves the interoperability with servers that require a non-empty value for this header.

Bug fixLuciadFusion

LCD-9051
The TLcdGeoTIFFModelDecoder could result in certain cases in throwing an IllegalArgumentException. This was the case when
  • the decoder was configured to create multiple levels automatically for files having only a single level of detail
  • the data had 4 samples/pixel
Note that for performance it is always better to ensure the GeoTIFF file is well-structured, i.e., it is organized with internal tiling and having multiple levels of details.

Bug fixLuciadFusion

LCD-10595
TLspShapeLayerBuilder: when culling was disabled and a TLcdModelQueryConfiguration was configured, the objects on the map would not be updated when the view scale changed.

Bug fixLuciadFusion

LCD-10604
The WMTS client could not handle WMTS services with capabilities that did not include a service identification section.

Bug fixInfrastructure Standards

LCD-10616
Fixed a NullPointerException related to the view clip when using a TLspGXYLayerAdapter to visualize DGN data.

Bug fixRadar Connectors

LCD-10619
When the records received from a radar feed (ASTERIX cat240) are not next to each other in terms of azimuth, the visualization would show artifacts.

2018.1.13

Bug fixLuciadFusion

LCD-10597
Fixed an issue when creating a TLcd2DEditablePointList or TLcd3DEditablePointList based on another point list that had no editable points. They assumed that the delegate points were editable, causing ClassCastExceptions.

Bug fixLuciadFusion

LCD-10592
The TLcdWFSModelDecoderDecorator#decodeModel methods to manually decode WFS response data did not set a model reference in case of WFS 2.0 response data.

Bug fixLuciadFusion

LCD-10578
TLspLabelPainter: curved labels with a white color (or an other light color) and no halo showed dark artifacts along the edges of the text.

Bug fixLuciadFusion

LCD-10585
An exception handler configured on ALcdWMSProxy was not called in case of a server that went offline.

Bug fixDatabase Connectors

LCD-10598
Fixed an issue that prevented a custom reference WKT string from being decoded.

Bug fixDefense Symbology

LCD-10593
Fixed a GXY symbol rendering regression introduced by LCD-10473, causing an incorrect ENY label for the Contain symbol.

Bug fixDefense Symbology

LCD-10591
Fixed an issue with GXY views which caused the 'Forward Edge of Battle Area' (MIL-STD 2525 b/c 2.X.2.4.2.1) symbols to no longer be painted.

Bug fixDefense Symbology

LCD-10251
Fixed an incorrect missile background color in the MIL-STD 2525b/c icon for the Ballistic Missile symbol.

Bug fixDefense Symbology

LCD-10253
Fixed an inaccuracy in the MIL-STD 2525b/c icon for the Backhoe symbol.

Upgrade considerationLuciadFusion

LCD-10570
The JOGL, JOCL, and GlueGen libraries have been updated to version 2.3.2+4-lcd. This is a patched version of the official 2.3.2 version of JOGL, which now also fixes a bug that could cause Lightspeed to crash in Linux + AMD setups.

2018.1.12

Bug fixLuciadFusion

LF-1745
When a coverage in a tile store was updated, a new data was created for that coverage instead of updating the original data for that coverage. This could cause the capabilities of a service to not be updated if the data for the coverage was published in a service. This has now been fixed so that the data is updated instead of creating a new one.

Bug fixLuciadFusion

LCD-10565
TLsp3DIconStyle: When the geometry to position the 3D icon was provided with an ALspStyleTargetProvider, the 3D icon was not positioned at the correct height when the elevation mode on the style was set to ABOVE_TERRAIN.

Bug fixTerrain Analysis Engine

LF-1729
Fixed an issue where the TEA sample was not able to access the LTS service that was created on the same LuciadFusion Platform application.

2018.1.11

ImprovementLuciadFusion

LF-1743
The LuciadFusion engine now can handle GeoTIFF for which the image outline is not axis aligned. This used to result in an exception that the model reference could not be encoded in the meta data.

ImprovementLuciadFusion

LCD-10557
The complex line stroking implementation TLcdGXYComplexStroke now allows to disable pattern rotations, which can be useful in case of text-based patterns. A new constructor has been added to enable/disable rotation for each pattern individually.

ImprovementLuciadFusion

LCD-10537
The SLD implementation now supports inline graphics containing Base64-encoded SVG graphic icons, next to the existing support for Base64-encoded bitmap graphic icons and XML-encoded SVG graphic icons.

ImprovementDefense Symbology

LCD-10355
Added Hostility indication labels (ENY) to the symbols Tasks - Fix, Obstacle Effect - Fix and Block.

ImprovementDefense Symbology

LCD-10473
The single letter decoration character in the Clear, Contain and Canalize symbols is now always rendered non-rotated.

Bug fixLuciadFusion

LCD-10579
TLcdWKTReferenceParser threw a NPE when trying to parse a COMPD_CS with an unsupported vertical data. It now throws a ParseException.

Bug fixLuciadFusion

LCD-10480
TLcdDimensionFilter#createSnappingFilter snapped to the first or last interval of an axis, even though the given filter value was outside the range of that axis. No it only performs snapping when the filter value is within the axis range. For a model that defines multiple images on a time axis, this resulted in the behavior that an image was always displayed, even though the time filter specifies a time that is outside the time range of the ILcdMultiDimensionalModel.

Bug fixLuciadFusion

LCD-10297
TLcdGXYNewController2 and TLcdGXYTouchNewController: a regression triggered by LCD-9483 could trigger warnings to be logged in some exceptional cases.

Bug fixWeather & Environment Standards

LCD-10480
TLcdNetCDFFilteredModel now correctly handles the case where the applyDimensionFilter method is called with a filter that doesn't match any of the images. In that case, it now makes sure that no image is available in the model. The previous behavior was to do nothing (i.e. don't change the image returned by the model) when such a filter was encountered.

Bug fixDefense Symbology

LCD-10576
Fixed a regression introduced in LuciadLightspeed 2018.1 that caused several symbols to be visualized using outdated icons.

Bug fixDefense Symbology

LCD-10448
Improved the stroke pattern of the Decoy Mined Area, Fenced symbol to better match with the standard specifications.

2018.1.10

Bug fixLuciadFusion

LF-1735
When creating a new service whose type may require preprocessing, entering a service name with invalid disk path characters no longer causes the preprocessing field to disappear from the UI.

Bug fixLuciadFusion

LF-1701
Fixed an issue where a product was not correctly updated if it was indexed at the same time.

Bug fixLuciadFusion

LF-1710
The LuciadFusion Studio Products page now includes type filters for Mesh, Point Cloud, and Unknown product types.

Bug fixLuciadFusion

LF-1726
Fixed an issue where the LuciadFusion Platform application could not be deployed to the WebLogic application server due to library conflicts.

Bug fixLuciadFusion

LF-1727
Fixed an issue in LuciadFusion Studio that caused a “Sec-Websocket-Protocol” error to occur when a WebSocket notification was sent.

2018.1.09

ImprovementLuciadFusion

LCD-10524, LCD-10412
The common GML decoder class TLcdGMLModelDecoder now allows to configure whether the interpolation of linear GML elements needs to be geodesic in case of a geodetic reference, through the newly introduced methods setLinearElementsUseGeodesicInterpolationForGeodeticSrs and isLinearElementsUseGeodesicInterpolationForGeodeticSrs. This impacts the GML elements LineString, LineStringSegment and LinearRing. Although these GML elements conceptually represent geometries with a linear interpolation, they are often used to represent geometries with lon/lat coordinates and a geodesic interpolation.

Bug fixLuciadFusion

LCD-10546
TLcdVVJPanel: fixed an accuracy problem when horizontally zooming in on a vertical view.

Bug fixLuciadFusion

LCD-10545
TLcdVVTerrainModel: when computing the terrain for a buffer with purely vertical segments, the calculation could get stuck in an infinite loop.

Bug fixAviation Standards

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

Bug fixDefense Standards

LCD-10548
TLcdVPFModelDescriptor: a NullPointerException was thrown when calling #getDataModel for models not containing VPF features (e.g. the library model).

Bug fixDefense Symbology

LCD-10014
Set the outline for military symbol icons to black and white dots for the "Assumed Neutral" affiliation in APP-6B.

Bug fixDefense Symbology

LCD-10542, LCD-10474
Corrected arrow points for the "bypass easy", "obstacle effect - disrupt", and "counterattack by fire" symbols in a Lightspeed view.

Bug fixDefense Symbology

LCD-10540
Isotach symbols now use the correct color.

2018.1.08

ImprovementLuciadFusion

LCD-10532
The SLD Lightspeed implementation now supports the rendering of curved labels that follow a feature's geometry, a capability already supported in the SLD GXY implementation. A common example is the labeling of road names. This capability can be enabled on a TLcdSLDTextSymbolizer by configuring an SLD vendor option with name followLine and value true.

ImprovementTerrain Analysis Engine

LCD-10525
TLcdLOSCoverageFactory.createLOSCoverageContours now creates contours that wrap around if the angle arc spans 360 degrees. It does this even if the angle step is not a divisor of 360.

ImprovementDefense Symbology

LCD-10495
Added a subset of 'Control Measure' tactical graphics for APP-6D. The added symbols are:
  • 25110101: Boundary - Lateral
  • 25110102: Boundary - Forward
  • 25110103: Boundary - Rear
  • 25110200: Light Line
  • 25110300: Engineer Work Line
  • 25120100: Area Of Operations
  • 25120200: Named Area Of Interest
  • 25120300: Target Area Of Interest
  • 25120400: Airfield Zone
  • 25120500: Base Camp
  • 25120600: Guerrilla Base
  • 25140100: Forward Line Of Troops
  • 25140300: Phase Line
  • 25140400: Forward Edge Of The Battle Area
  • 25140900: Limit Of Advance
  • 25141000: Line Of Departure
  • 25141100: Line Of Departure / Line Of Contact
  • 25141500: Holding Line (HL)
  • 25150200: Assembly Area (AA)
  • 25150501: Action Area - Joint Tactical Action Area (JTAA)
  • 25150502: Action Area - Submarine Action Area (SAA)
  • 25150503: Action Area - Submarine-Generated Action Area (SGAA)
  • 25150700: Extraction Zone (EZ)
  • 25150800: Landing Zone (LZ)
  • 25151000: Fortified Area
  • 25151200: Battle Position
  • 25151203: Battle Position - Strong Point
  • 25151205: Battle Position - Retain
  • 25151300: Engagement Area (EA)
  • 25151403: Axis Of Advance - Main Attack
  • 25151404: Axis Of Advance - Supporting Attack
  • 25151600: Attack Position
  • 25151700: Objective Area
  • 25151800: Encirclement
  • 25170100: Air Corridor
  • 25170101: Air Corridor - Air Corridor With Multiple Segments
  • 25170200: Low-Level Transit Route
  • 25170300: Temporary Minimum-Risk Route
  • 25170400: Safe Lane
  • 25170500: Standard Use Army Aircraft Flight Route (SAAFR)
  • 25170600: Transit Corridors
  • 25170700: Special Corridor
  • 25170800: Base Defence Zone
  • 25170900: High-Density Airspace Control Zone
  • 25171000: Restricted Operations Zone (ROZ)
  • 25171100: Air-to-Air Restricted Operations Zone (AARROZ)
  • 25171200: Unmanned Aircraft Restricted Operations Zone (UA-ROZ)
  • 25171300: Weapon Engagement Zone
  • 25171400: Fighter Engagement Zone (FEZ)
  • 25171500: Joint Engagement Zone (JEZ)
  • 25171600: Missile Engagement Zone (MEZ)
  • 25171700: Low (Altitude) Missile Engagement Zone (LOMEZ)
  • 25171800: High (Altitude) Missile Engagement Zone (HIMEZ)
  • 25171900: Short Range Air Defence Engagement Zone (SHORADEZ)
  • 25172000: Weapons Free Zone
  • 25190100: Identification, Friend-or-Foe (IFF) Off Line
  • 25190200: Identification, Friend-or-Foe (IFF) On Line
  • 25240101: Airspace Coordination Area (ACA) - Irregular
  • 25240102: Airspace Coordination Area (ACA) - Rectangular
  • 25240103: Airspace Coordination Area (ACA) - Circular
  • 25240201: Free Fire Area (FFA) - Irregular
  • 25240202: Free Fire Area (FFA) - Rectangular
  • 25240203: Free Fire Area (FFA) - Circular
  • 25240301: No Fire Area (NFA) - Irregular
  • 25240302: No Fire Area (NFA) - Rectangular
  • 25240303: No Fire Area (NFA) - Circular
  • 25240401: Restricted Fire Area (RFA) - Irregular
  • 25240402: Restricted Fire Area (RFA) - Rectangular
  • 25240403: Restricted Fire Area (RFA) - Circular
  • 25240601: Point Targets - Point or Single Target
  • 25240602: Point Targets - Nuclear Target
  • 25240603: Point Targets - Target-Recorded (Aegis Only)
  • 25240701: Linear Targets - Linear Target
  • 25240702: Linear Targets - Linear Smoke Target
  • 25240703: Linear Targets - Final Protective Fire (FPF)
  • 25240801: Area Targets - Area Target
  • 25240802: Area Targets - Rectangular Target
  • 25240803: Area Targets - Circular Target
  • 25240804: Area Targets - Rectangular Target - Single Target (Aegis Only)
  • 25240805: Area Targets - Series or Group Of Targets
  • 25240806: Area Targets - Smoke
  • 25240808: Area Targets - Bomb Area
  • 25241001: Fire Support Area - Irregular
  • 25241002: Fire Support Area - Rectangular
  • 25241003: Fire Support Area - Circular
  • 25241101: Artillery Target Intelligence Zone (ATI) - Irregular
  • 25241102: Artillery Target Intelligence Zone (ATI) - Rectangular
  • 25241103: Artillery Target Intelligence Zone (ATI) - Circular
  • 25241201: Call for Fire Zone (CFFZ) - Irregular
  • 25241202: Call for Fire Zone (CFFZ) - Rectangular
  • 25241203: Call for Fire Zone (CFFZ) - Circular
  • 25241401: Critical Friendly Zone (CFZ) - Irregular
  • 25241402: Critical Friendly Zone (CFZ) - Rectangular
  • 25241403: Critical Friendly Zone (CFZ) - Circular
  • 25241601: Sensor Zone - Irregular
  • 25241602: Sensor Zone - Rectangular
  • 25241603: Sensor Zone - Circular
  • 25241801: Target Value Area - Irregular
  • 25241802: Target Value Area - Rectangular
  • 25241803: Target Value Area - Circular
  • 25242100: Weapon/Sensor Range Fan, Circular
  • 25242200: Weapon/Sensor Range Fan, Sector
  • 25260100: Fire Support Coordination Line (FSCL)
  • 25270100: Obstacle Belt
  • 25270200: Obstacle Zone
  • 25270400: Obstacle Restricted Zone
  • 25270504: Obstacle Effects - Turn
  • 25270800: Mined Area
  • 25270900: Decoy Mined Area
  • 25270901: Decoy Mined Area - Fenced
  • 25271000: Unexploded Explosive Ordnance (UXO) Area
  • 25271100: Bridge or Gap
  • 25271201: Roadblocks, Craters, and Blown Bridges - Planned
  • 25271202: Roadblocks, Craters, and Blown Bridges - Explosives, State Of Readiness 1 (Safe)
  • 25271203: Roadblocks, Craters, and Blown Bridges - Explosives, State Of Readiness 2 (Armed But Passable)
  • 25271204: Roadblocks, Craters, and Blown Bridges - Roadblock Complete (Executed)
  • 25271400: Bridge
  • 25271700: Biological Contaminated Area
  • 25271701: Biological Contaminated Area - Toxic Industrial Material
  • 25271800: Chemical Contaminated Area
  • 25271801: Chemical Contaminated Area - Toxic Industrial Material
  • 25271900: Nuclear Contaminated Area
  • 25272000: Radiological Contaminated Area
  • 25272001: Radiological Contaminated Area - Toxic Industrial Material
  • 25272100: Minimum Safe Distance Zone
  • 25272200: Radiation Dose Rate Contour Line
  • 25290100: Obstacle Line
  • 25290900: Fortified Line
  • 25300100: Intelligence Coordination Line
  • 25310100: Detainee Holding Area
  • 25310200: Enemy Prisoner Of War Holding Area
  • 25310300: Forward Arming and Refuelling Point (FARP)
  • 25310400: Refugee Holding Area
  • 25310500: Regimental Support Area
  • 25310600: Brigade Support Area (BSA)
  • 25310700: Division Support Area
  • 25330100: Moving Convoy
  • 25330200: Halted Convoy
  • 25330300: Main Supply Route (MSR)
  • 25330301: Main Supply Route (MSR) - One Way Traffic
  • 25330302: Main Supply Route (MSR) - Two Way Traffic
  • 25330303: Main Supply Route (MSR) - Alternating Traffic
  • 25330400: Alternate Supply Route (ASR)
  • 25330401: Alternate Supply Route (ASR) - One Way Traffic
  • 25330402: Alternate Supply Route (ASR) - Two Way Traffic
  • 25330403: Alternate Supply Route (ASR) - Alternating Traffic
  • 25340600: Counter Attack
  • 25340800: Delay
  • 25341100: Fix
  • 25341300: Follow and Support
  • 25341500: Isolate
  • 25341700: Occupy
  • 25342000: Retire/Retirement
  • 25342100: Secure
  • 25342201: Security - Cover
  • 25342202: Security - Guard
  • 25342203: Security - Screen
  • 25342300: Seize
  • 25342400: Withdraw

Bug fixLuciadFusion

LCD-10491
Fixed an issue with the undo behavior of extruded shapes after their creation with a right click. When an object creation finished with a right click, the next editing operation was not recorded as expected. As a result, corrupted undo operations were removing created object completely.

Bug fixLuciadFusion

LCD-15000
Fixed an issue with TLspRulerController when #displayAzimuth was set to true, a misleading snap target was created during the creation of a new measurement.

Bug fixLuciadFusion

LCD-10523
ALcdTransformingModel: would fire incorrect model events, triggered by changes on the original model in some cases.

Bug fixDefense Symbology

Removed incorrect label on Encirclement symbol in APP6-C and MIL-STD-2525 D.

Bug fixDefense Symbology

LCD-10456
The stroke label baseline for the Series or Group of targets symbol was not centered around the stroke.

Bug fixDefense Symbology

LCD-10531
TLcdMS2525bNode/TLcdAPP6ANode#getName: corrected the casing of several acronyms.

2018.1.07

ImprovementWeather & Environment Standards

LCD-10511
TLcdNetCDFModelDecoder: multi-band image detection now works more robustly.

Bug fixLuciadFusion

LCD-10521
TLspIconStyle, TLspParameterizedIconStyle: A scale configured on these styles in combination with the default selection style could cause a partially hidden selection box when the icon was selected.

Bug fixLuciadFusion

LCD-10519
Fixed an issue where for certain DTED data sets, under certain conditions, the visualization was not correct at tile borders.

Bug fixLuciadFusion

LCD-10518
The SLD channel selection / normalize operation ignored any alpha band in the source image, causing a potential removal of transparency in the result.

Bug fixLuciadFusion

LCD-10512
TLspIconStyle, TLspParameterizedIconStyle: The scale configured on these styles was not taken into account for selection, as a result icons could incorrectly be selected or not be selectable.

Bug fixLuciadFusion

LCD-10510
TLspLonLatGridStyler: the setLabelLineOffset and setLabelEdgeOffsets methods didn't always have any effect.

Bug fixLuciadFusion

LCD-10507
TLspShapeLayerBuilder: When there are frequent model updates, for certain camera angles objects would sometimes appear to be flickering.

Bug fixDefense Symbology

LCD-10462
Resolved display problems for small Rectangular Target symbols, which was caused by rounding errors.

Bug fixDefense Symbology

LF-1723
Fixed a bug where the Military Symbol service ignored the Symbol.Fill styling configuration property.

Upgrade considerationDefense Symbology

LCD-10516
Min and max point count constraints are now applied for military symbols with multipoint and polyline geometry in NVG. This may cause some changes in the editing behaviour of nvg files. If a multipoint or polyline symbol which does not respect its max point count is present in an nvg file, this symbol will initially be rendered as-is. When the symbol gets edited however, the constraint will be applied and the points will be removed from the symbol until it matches the constraint.

2018.1.06

ImprovementLuciadFusion

LCD-10459
Improved the default styling for E57 point clouds. The size of the icons used for the points is more reasonable now.

ImprovementLuciadFusion

LCD-7988
In a snapping operation, a domain object snaps to another nearby domain object on the map. TLspPointToPointSnapper now allows you to find out to which domain object the snapping object has snapped. Use the TLspPointToPointSnapper.OBJECT_PROPERTY_KEY to get the target domain object from the TLspEditOperation produced by TLspPointToPointSnapper.snap method. See the developer guide for sample code.

Bug fixLuciadFusion

LF-1709
A product created using the REST API was given the product type 'Unknown' while it was actually 'Empty'. This caused newly created products to not show up in the web interface when setting the type filter to 'Empty'. This has now been fixed by setting the type to 'Empty' when creating the product.

Bug fixLuciadFusion

LF-1714
Fixed user tour popup text to remove instances of <strong> HTML elements.

Bug fixLuciadFusion

LCD-10488
Fixed an issue in TLcdLonLatArc#getLength2D. It always returned the full lengths, even when the two parameters were not 0.0 and 1.0.

Bug fixLuciadFusion

LCD-10440
TLspIconStyle: When the elevation mode of the style was set to ABOVE_TERRAIN and there was no terrain or imagery layer in the view, the icon would incorrectly have a small height offset in a 3D view.

Bug fixLuciadFusion

LF-1719
Fixed an issue where a scheduled crawl job could fail with the error "AccessDeniedException: You are not logged in".

Bug fixLuciadFusion

LCD-10485
TLcdPrintPreview: added some missing translation strings. The possible translation keys are listed in the setStringTranslator method javadoc.

Bug fixLuciadFusion

LCD-10482
The TLcdModelQueryConfiguration of a layer would not always be taken into account when a repaint was triggered by changes to model elements.

Bug fixLuciadFusion

LF-1711
Fixed an issue where the Apply Changes and Discard Changes buttons were shown when changing the crawl job schedule in the Web UI, even though no changes were made. To avoid confusion on when a schedule change was saved, the status message at the bottom of the crawl job page was removed. The schedule is not changed as long as the Apply Changes/Discard Changes buttons do not appear. If a schedule change has been made and the Apply Changes button is clicked, the change is saved once those buttons have disappeared.

Bug fixLuciadFusion

LF-1708
Fixed an issue where Internet Explorer 11 cannot open OGC Tile services. Internet Explorer cannot handle some compressed responses which are prepared using deflate compression algorithm and contain ZLIB wrapper bytes.

Bug fixLuciadFusion

LF-1705
Fixed an issue where styles using TextSymbolizerType were assigned the type None instead of Vector. The None style type has also been changed to Unknown instead. Related to this, the Web UI incorrectly showed the type Empty to filter styles on. This has now been changed to Unknown.

Bug fixLuciadFusion

LF-1698
If during crawling a Data was part of a larger data set (e.g. DTED or OSGB data set), no public id would be generated for that Data, making it not possible to reference it in REST API calls. This has now been fixed, and a public id will be generated for all previously crawled data that has no public id.

Bug fixLuciadFusion

LF-1697
When exposing a WMS service that contains only ECDIS data, LuciadFusion now always advertises that it support the S52 SLD extension for customized styling. This already was the case for individual S-57 or S-63 cells, but not for catalogs. The result was that clients (for example Lucy) didn't show ECDIS configuration panels.

Bug fixDefense Symbology

LCD-10354
Added UniqueDesignation label to the symbols 'Minimum Safe Distance Zones', 'Fix', 'Bypass Easy', 'Series or Group of Targets' and 'Block.

Bug fixDefense Symbology

LCD-10497
Fixed an incorrect label indication for the Minimum Safe Distance Zones symbol when one of the circles is edited to make it smaller or larger than another circle.

Bug fixDefense Symbology

LCD-10496
Added the missing Width, Length and Attitude properties to the TLcdAPP6ADataTypes.APP6ACodedType and TLcdMS2525bDataTypes.MS2525bCodedType.

Bug fixDefense Symbology

LCD-10479
Fixed a label displacement issue in GXY views for the 'Position Area for Artillery (PAA) - Rectangular' symbol. Related to this, the label position in the MIL-STD 2525C implementation now aligns with the axis of the symbol; this better reflects the way the symbol is defined in MIL-STD 2525C.

Bug fixDefense Symbology

LCD-10471
Fixed an issue for a number of APP-6/MIL-STD-2525 line and area symbols that caused the removal of the Anticipated / Planned status dash pattern in a Lightspeed view if a halo was enabled.

2018.1.05

ImprovementLuciadFusion

LCD-10263
TLspTouchNavigateController keeps track of the inconsistent series of touch events when navigating in a Lightspeed view with multiple fingers. Before this enhancement, the contradictory state of the touchpoints reported with an error message which may leave the view unresponsive. Now, before the view becomes unresponsive, the controller waits until all the touched fingers lifted. Afterward, the controller starts to interact with the view as usual.

ImprovementLuciadFusion

LCD-10441
The SLD normalize operation now automatically calculates the normalization min/max interval(s), to avoid the need for users to define them upfront. If the min/max interval(s) are not defined, a histogram operation is used to automatically deduce them from the data.

ImprovementAdvanced GIS Engine

LCD-10461
Fixed a bug in Constructive geometry where operations between shapes would yield no result.

ImprovementAdvanced GIS Engine

Ellipsoidal constructive geometry now correctly supports Rhumb shapes. They were previously treated the same way as geodetic shapes, causing accuracy problems.

ImprovementDefense Symbology

LCD-10331
Changed the creation mode of the ellipse painter in the TLcdNVGGXYPainterProvider to TLcdGXYEllipsePainter.THREE_CLICK in order to match the creation mode of military symbols with a non-standard ellipse geometry.

Bug fixLuciadFusion

LCD-10467
3D Tiles encoding: Fixed a bug when the amount of indices of a mesh would be greater than the size of a short. Now encoding those as unsigned integers.

Bug fixLuciadFusion

LF-1713
Fixed an issue when accessing the original, full-detail shape of a fused text vector object (for example through ((ILcdShapeList) e).getShape(0)). That object was originally an ILcdText object, but the fused full-detail shape could be absent.

Bug fixDefense Symbology

LCD-10352
Fixed an incorrect min / max distance label indication for the Weapons/Sensor Range Fan - Circular symbol when one of the circles is edited to make it smaller or larger than another circle.

Bug fixDefense Symbology

LCD-10454
Fixed the following labeling issues with the Rectangular Target symbol
  • Labels no longer disappear when the rectangular target gets too small
  • Space between two words in a label has been reduced
  • Hostility indication labels (ENY) are no longer painted for the Rectangular Target symbol
  • Label text is always painted upright and no longer follows the slope of the axis line of the rectangle

Bug fixDefense Symbology

LCD-10450
Fixed some label issues for biological and chemical release event icons.

2018.1.04

ImprovementLuciadFusion

TLcdEllipsoidRhumblineUtil: The #polygonContains2D, #intersectsGeodesicRhumbline and #intersectionGeodesicRhumblineSFCT methods now do the necessary calculations on the ellipsoid passed as a parameter instead of on a sphere.

ImprovementLuciadFusion

LCD-10442
Improved the message in the WMS service exception report for the case when the parameter for the coordinate reference system is missing for operations like GetMap and GetFeatureInfo. In case of WMS 1.3.0 the parameter CRS is required and for WMS 1.1.x the parameter SRS is required.

Bug fixLuciadFusion

LCD-10447
Source names of supporting files extracted from iso 19115 metadata files are now url decoded before being returned by TLcdModelMetadata#discoverSupportingSources

Bug fixLuciadFusion

LCD-10445
TLcdGeoJsonFeature#applyDataType would incorrectly resolve null values to empty HashMap instances.

Bug fixLuciadFusion

LCD-10336
The map navigation has been improved when using touch displays. To get the best user experience, enable combined gestures on TLspTouchNavigateController with setCombineGestures(true) On 2D maps, you can pan, rotate and zoom at the same time with two fingers. On 3D maps, the map will pitch when using two fingers close to each-other, otherwise you can rotate and zoom at the same time. Default behaviour unchanged, map can be rotated, zoomed, panned and pitched(only 3D) individually. Drift problem solved while rotating the map.

Bug fixDefense Symbology

LCD-10427
Changed the painters of some symbols to resolve very poor performance when zoomed in with a GXY view. Because of this change, the symbol's painting will now be affected by the configured corner smoothness in the styling. These symbols can thus be painted with rounded corners. See ILcdMS2525bStyle#getCornerSmoothness and ILcdAPP6AStyle#getCornerSmoothness. The following symbols are affected: MIL-STD-2525 B:
  • 2.X.3.1.1.1 - Belt
  • 2.X.3.1.1.2 - Line
  • 2.X.3.1.1.3 - Zone
  • 2.X.3.1.1.4 - Obstacle Free Area
MIL-STD-2525 C:
  • 2.X.3.1.1.1 - Belt
  • 2.X.3.1.1.2 - Line
  • 2.X.3.1.1.3 - Zone
  • 2.X.3.1.1.4 - Obstacle Free Area
MIL-STD-2525 D
  • 25260100 - Fire Support Coordination Line (FSCL)
  • 25260200 - Coordinated Fire Line (CFL)
  • 25290100 - Obstacle Line
  • 25270300 - Obstacle Free Zone
APP6-A:
  • 2.X.2.2.1.1.2 - Line
  • 2.X.2.2.1.1.3 - Zone
  • 2.X.2.2.1.9 - Obstacle Free Area
APP6-B:
  • 2.X.2.2.1.1.2 - Line
  • 2.X.2.2.1.1.3 - Zone
  • 2.X.2.2.1.9 - Obstacle Free Area
APP6-C:
  • 25260100 - Obstacle Belt
  • 25260200 - Obstacle Zone
  • 25270100 - Obstacle Line
  • 25260300 - Obstacle Free Zone

Bug fixDefense Symbology

LCD-10428
Fixed issue where the stroke pattern of some military symbols was flipped the wrong way in GXY views.

Bug fixDefense Symbology

LCD-10435
Fixed issue with the symbol (2.X.4.3.2.6) 'Position Area for Artillery (PAA) - Rectangular' where the symbol could get displaced when switching projections in GXY views.

2018.1.03

ImprovementLuciadFusion

LCD-10422
The TLcdGXYEllipsePainter now starts painting its axis line editing handles after the first point has been placed. This used to only happen after the second point was placed. This brings the behaviour of the TLcdGXYEllipsePainter in line with Lightspeed.

ImprovementLuciadFusion

LCD-10201
A number of improvements have been implemented related to the WFS server's interoperability with 3rd party WFS client solutions:
  • For GML 3.1 / 3.2 responses, linear GML elements are used by default. This makes sure that ILcdPolyline and ILcdPolygon instances are respectively encoded to LineString and LinearRing elements, regardless of their interpolation. Previously, GeodesicString elements were used for a geodesic interpolation.
  • The sample WFS server now uses qualified feature type names by default. Additionally, these feature type names are reused as XML element names in the GML output data.

ImprovementLuciadFusion

LCD-10425
TLcdXMLBuiltInEncoderLibrary: improved handling of object property values containing 0x1a characters, which represent character errors that cannot be defined in XML. To avoid any XML encoding issues, such characters are converted to the - character.

ImprovementDefense Symbology

LCD-10391
Changed the editing behaviour of the 'Rectangular Target' symbol to more closely match the symbol definition in the military standards. The symbol is now defined by a center point and the newly added "length", "width", and "attitude" text modifiers. The values in these modifiers will be changed as the visual representation of the symbol is edited. Conversely changing those values programmatically (by using ILcdEditableMS2525bCoded#putTextModifier and ILcdAPP6Coded#putTextModifier) will also change the symbol's visual representation. Creating such a symbol programmatically with two or more points in the ILcdMS2525bShape/ILcdAPP6AShape's point list will revert back to the legacy visualization and editing behaviour, where the points define the start and end point of the buffer axis and ILcdMS2525bShape/ILcdAPP6AShape#getWidth defines the buffer width. The following symbols are affected by this change:
  • MIL-STD-2525 B: 2.X.4.3.1.1 - Rectangular Target
  • MIL-STD-2525 C: 2.X.4.3.1.1 - Rectangular Target
  • MIL-STD-2525 D: 100025000024080200001 - Rectangular Target
  • APP6-C: 10002500002306000000 - Rectangular Target

Bug fixLuciadFusion

LF-1685
Fusion Studio now uses a secure WebSocket connection (wss://) between browser and backend, if it is accessed over HTTPS. This avoids issues where the browser would disallow the WebSocket to be established, due to the mixed content security policy.

Bug fixLuciadFusion

LF-1692
Fixed an issue where the public id of a data item could change after the corresponding data file was updated and the file was crawled. This only occurred if no related metadata file for the data existed.

Bug fixLuciadFusion

LCD-10421
Fixed issue with the TLcdGXYGeoBufferPainter where the buffer contour was painted with geodetic lines but the buffer axis line was painted with straight lines when using a geodetic model reference in combination with an ILcdGXYPen created with the ALcdGXYPen.Quality.FASTEST enum value.

Bug fixLuciadFusion

The output format encoding in the DescribeFeatureType requests in XML Schema location URLs could contain an unexpected + character.

Bug fixLuciadFusion

LF-1690
Fixed an issue where a finished crawling notification could incorrectly be shown after saving the crawling schedule. After a crawl job had finished, the finished crawling notification sometimes mentioned an incorrect finishing status. This has also been fixed.

Bug fixLuciadFusion

LCD-10378
Fixed issue with TLspFixedInPathLabelLocationProvider, where an incorrect locations was provided for composite curves.

Bug fixLuciadFusion

LF-1686
Fixed an issue where a crawl job for the uploads directory was not created and therefore the files under that directory weren't recrawled unless the user uploaded new files. This problem occurred when the upload directory was not empty and LuciadFusion Studio started with a fresh database.

Bug fixLuciadFusion

LF-1683
Fixed an issue where the LuciadFusion Studio web front end didn't redirect users after login when a different context path was used.

Bug fixLuciadFusion

LF-1682
Fixed an issue in the LuciadFusion Studio web front end where translation files couldn't fetched properly when a custom context path was used.

Upgrade considerationLuciadFusion

The Java Expression Language dependency has been upgraded from version 2.2 to 3.0. Consequently, an application server or servlet container with support for EL 3.0 API or higher is now required for deployment of the LuciadFusion Platform, for instance, Tomcat 8 or higher.

2018.1.02

ImprovementLuciadFusion

LCD-10414
TLcdServiceLoader: improved compatibility with certain OSGi implementations.

ImprovementLuciadFusion

LCD-10156
The border factor property of raster layers allows you to configure processing some additional data outside of the view. This reduces the popping effect while panning or zooming. TLspRasterLayerBuilder and TLspRasterLayer now allow you to configure to include texture loading in this additional processing. By default, it is not included. Including it increases the memory and cpu usage, but will often give faster updates for small pan and zoom operations.

ImprovementDefense Symbology

LCD-10399
Made the font of the 'PAA' label of the symbol 'Position Area For Artillery (PAA) - Rectangular' (MIL-STD-2525-C) adjustable trough styling.

Bug fixLuciadFusion

The OGC Filter evaluation of mathematical expressions containing an Add, Substract, Divide and/or Multiply operation could wrongly misinterpret numeric input values as dates.

Bug fixLuciadFusion

LCD-10379
OGC 3D Tiles decoders can now handle query parameters in the contents' URL.

Bug fixLuciadFusion

LCD-10405
Fixed an issue where E57 files declaring extension namespaces could not be decoded.

Bug fixLuciadFusion

LCD-10404
Fixed an issue where the WMTS server tried to write data to an already closed response. This issue occured when the client closed the connection while the server was still working on it.

Bug fixLuciadFusion

The WMS server's command dispatcher TLcdOGCSLDWMSCommandDispatcher did not always include the request context parameter when invoking the createGXYLayer method on the configured layer factory of type ALcdSLDWMSGXYLayerFactory.

Bug fixLuciadFusion

LCD-10401
Fixed an issue when using applyOnInteract2DBounds on a model based on a LuciadFusion vector coverage. It would retain all overlapping tiles in memory, causing out of memory if the requested bounds were large. Note that regular visualization or other built-in functions never triggered this problem, as they use a different path.

Bug fixLuciadFusion

LCD-10388
Fixed an issue when interactively editing geodetic ellipses (TLcdLonLatEllipse) on a Lightspeed view using the regular TLspEllipseEditor. When dragging a handle on one of the axes beyond XYZ, the ellipse was flipped: the major axis reversed and rotated by 180 degrees. This has no visual result on the ellipse, but was unexpected.

Bug fixLuciadFusion

LCD-10406
Fixed a regression related to the decoding of SLD ParameterValue elements, introduced by enhancement LCD-10387.

Bug fixDefense Symbology

LCD-10408
The introduction of APP-6D and MIL-STD 2525D caused a regression in the TTA 106 icons. This has been fixed.

2018.1.01

ImprovementLuciadFusion

LCD-10387
The SLD label painting pipeline in GXY / Lightspeed views now support the use of multiline labels, by using a CDATA element inside the label content that specifies a new line as follows: <![CDATA[ ]]>

ImprovementLuciadFusion

LCD-10365

TLcdWMMMagneticNorthMap#setIgnoreModelLifeSpan and TLcdWMMMagneticNorthMap#setInputStreamFactory can now be called even before the data files have been set.

Additionally, improved the error output for methods that cannot be called before the data files have been set.

ImprovementLuciadFusion

LCD-10343
The WFS client can now handle WFS feature types for which the mandatory geographical reference information is missing in the WFS server's capabilities.

ImprovementLuciadFusion

LCD-10337, LCD-10423
TLcdWKTReferenceParser now support WKT strings for the EPSG:3857 reference that were formatted using the gdal library.

ImprovementLuciadFusion

LCD-10275
Added caching for HTTP(S)-based XML Schema locations when evaluating an OGC Filter on an XML dataset.

Bug fixLuciadFusion

LF-1652
The paint order for styled data mentioned in the REST API documentation was opposite of the actual paint order. The documentation has been updated and now correctly states that the paint order for styled data is last to first.

Bug fixLuciadFusion

LCD-10374
TLcdOGC3DTilesModelDecoder : Fixed a problem when handling gltf nodes identifiers that are Integers.

Bug fixLuciadFusion

LCD-10312
Fixed issue that would cause a ConcurrentModificationException when toggling tableview visibility with multiple editable domain objects selected.

Bug fixLuciadFusion

LCD-10356
ILcdTransformingModel: when model changes were triggered on the original model, you did not always get an event on the ILcdTransformingModel. This was the case when using ILcdModel#allElemensChanged or ILcdModel#removeElement followed by an ILcdModel#addElement for the same object.

Bug fixLuciadFusion

LCD-10304
Fixed issue with broken mouse clicks that have modifiers, for example ALT-clicks. This issue was introduced by the fix for LCD-10086.

Bug fixLuciadFusion

LF-1661
Fixed an issue where using a path containing one or more symlinks for the datastore directory would crash LuciadFusion after a restart. The crash log would contain a "ValidationException: Data root /datastore/path/uploads already exists" message when this occurred.

Bug fixLuciadFusion

LCD-10358
Fixed bug where TLcdWMMMagneticNorthMap#setDate would throw an exception for invalid dates, even when isIgnoreModelLifeSpan is true.

Bug fixLuciadFusion

LCD-10321
Fixed memory leak in TLspShapePainter that could be triggered when using a styler that does not reuse ILcdIcon implementations.

Bug fixLuciadFusion

LF-1647
Fixed bug where the name of a style would default to the file path instead of the file name of the sld file.

Bug fixLuciadFusion

LF-1644
Fixed an issue where the preprocessing path changing dialog in the LuciadFusion Studio web front end would show incorrect descriptions.

Bug fixLuciadFusion

TLcdISO8601DateFormat did not correctly handle parsing errors according to the contract defined in java.text.Format. In case of parsing errors:
  • parseObject(String) now throws a ParseException instead of an IllegalArgumentException.
  • parseObject(String, ParsePosition) now returns null instead of throwing an IllegalArgumentException.

Bug fixLuciadFusion

LCD-10305
The resolution logic introduced by LCD-9859 could cause the return of RGBA images for elevation coverages, leading to possible data interpretation issues in WCS clients.

Bug fixLuciadFusion

LCD-10299
The automated conversion of OGC filter to SQL inside database models did not support database properties of type java.sql.Timestamp.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-10396
Fixed possible bug in OpenJDK with GXY views where label bounds were calculated incorrectly, which could cause labels to be placed at an incorrect location. Affected symbols include the 'Relief in Place' symbol.

Bug fixDefense Symbology

LCD-10389
Fixed bug where some APP-6C Airspace Control Area symbols were painted by an incorrect painter

Bug fixDefense Symbology

LCD-10360
MIL-STD-2525D and APP-6D: Disabled the "echelon" modifier for Land Equipment, and the "mobility" modifier for other Land Symbols, following the standard specifications.

Bug fixDefense Symbology

LCD-10361
Avoid possible NullPointerException in the symbol painter of MIL-STD-2525 c "Overhead Wire/Power Line" symbols.

Bug fixDefense Symbology

LCD-10252
Shortened the length of the HQ indicator line so it does not pass the frame for Hostile and Unknown affiliations.

Bug fixDefense Symbology

LCD-10280
Removed dashed lines in the drawing of 'Weapon/Sensor Range Fan, Sector' symbol.

Bug fixDefense Symbology

LCD-10276
The cache size of TLcdMS2525bObjectIconProvider and TLcdAPP6AObjectIconProvider has been limited to 5000 to keep the cache from growing too large (was previously unlimited). This limit can be adjusted using the system property com.luciad.symbology.iconsymbols.MAX_CACHE_SIZE.

Bug fixDefense Symbology

LCD-10257
Removed unwanted gap from 'Bypass - Difficult' symbol from the MIL-STD 2525 C standard.

Bug fixS-63

LCD-10393

Fixed an issue with loading S-63 cell permits concurrently for multiple S-63 datasets, causing errors and missing cells.

In case where a single S-63 model decoder was used for multiple S-63 models, they share cell permit files. When displaying these models, these cell permit files were decoded concurrently, depending on timing. However, certain aspects of the IHO S-63 permit file decoding were not thread-safe, causing errors, that caused some permits to be skipped.

The end result was that some cell were not displayed. This is now resolved.

2018.1

ImprovementLuciadFusion

TLcdSystemPropertiesUtil: new utility methods have been added to check whether Java 10 or Java 11 is used.

ImprovementLuciadFusion

LCD-10283
SLD raster rendering in GXY / Lightspeed now supports the SLD normalize operation to normalize raster data to a given min and max interval. Through the existing class TLcdSLDContrastEnhancement, a TLcdSLDNormalize instance can be set that defines the normalization step; the min and max interval values are defined through the vendor options "minValue" and "maxValue". Aligned with the SLD specification, a TLcdSLDContrastEnhancement defining a normalize operation can either be set globally on the raster symbolizer (to let it apply to all raster channels) or separately per raster channel selection.

ImprovementLuciadFusion

LCD-10281
TLcdWKTReferenceParser now also supports WKT strings that use Mercator_Auxiliary_Sphere as projection parameter

ImprovementLuciadFusion

LF-1636
The Studio frontend will now safe-guard against service names that only contain symbols.

ImprovementLuciadFusion

LCD-10286
Improved error message in case a WFS service cannot be set up because the data is backed by an ILcdModel with model metadata that doesn't mark the content as vector data.

ImprovementLuciadFusion

LCD-10285
TLcdWKTReferenceParser now also supports WKT strings that use Dutch_Stereographic as projection parameter

ImprovementLuciadFusion

LF-1461, LF-1114
Details about the files found by crawl jobs can now be viewed in the LuciadFusion Studio web front end. When viewing crawl job details, you can now see statistics such as the number of files crawled, skipped, and failed. The files discovered by the crawl job are also now displayed in a list in the crawl job details view, and details on each individual file can be viewed by clicking on the file name in the list. The file details contains a link to the associated data (if any), and any errors encountered while processing the file during crawling.

ImprovementLuciadFusion

LF-1620
To improve performance and robustness, the Studio web front end preview maps can now show dataset bounds instead of the actual data for non-raster datasets.

ImprovementLuciadFusion

LCD-10206
TLspParameterizedLineStyle can now be configured with a dash pattern via its builder.

ImprovementLuciadFusion

LCD-10047
The OGC Web Client classes TLcdWFSDataSource, TLcdWMSDataSource, TLcdWMTSDataSource and TLcdWCSDataSource have improved support for parameterized URIs:
  • TLcdWFSDataSource.Builder.uri: now supports the use of the parameters 'data', 'typename' and 'typenames' to automatically set the desired feature type name.
  • TLcdWMSDataSource.Builder.uri: now supports the use of the parameters 'data', and 'layers' to automatically set the desired layer(s); additionally, the parameters 'styles' and 'format' can be used to respectively set the layer style(s) and desired format.
  • TLcdWMTSDataSource.Builder.uri: now supports the use of the parameter 'data' to automatically set the desired layer, similar to the existing supported parameter 'layer'.
  • TLcdWCSDataSource.Builder.uri: now supports the use of the parameters 'data' and 'coverage' to automatically set the desired coverage name.

ImprovementLuciadFusion

Added compatibility for OracleJDK/OpenJDK 11. Warnings might still appear at runtime when using those JDK but can be avoided using the --add-opens flags. More information about this flag is available in the technical notes.

ImprovementLuciadFusion

Added TLfnPointCloudPreprocessor to the Fusion API. This API lets you preprocess point cloud file such as LAS, LAZ or E57 so they can efficiently be served in LuciadFusion Studio. LuciadFusion Studio automatically preprocesses any point cloud file that is served as OGC 3D Tiles. The difference is that this preprocessor lets you perform the preprocessing as part of a separate process. The output can be served directly with LuciadFusion Studio without further processing requirements.

The TLfnPointCloudPreprocessor has a command-line sample that you can find in samples.fusion.pointcloud.PointCloudPreprocessorTool.

ImprovementLuciadFusion

LuciadFusion Studio now provides a JSON REST API. The REST API allows developers to automate the most common use-cases like publishing data as a service and updating the data in a live service. Previously these tasks needed to be executed manually using the web interface. For a default installation, the entry point of the API for a running LuciadFusion server can be found at http://localhost:8081/api, and the documentation at http://localhost:8081/api/documentation.

ImprovementLuciadFusion

Added support for the E57 format. This format is commonly used for by certain LIDAR scanners. To decode an E57 file, use the TLcdE57ModelDecoder. This produces a model with a TLcdE57ModelDescriptor, which can be used to access the metadata of the decoded model. Models can be visualized using a TLspLIDARLayerBuilder.

ImprovementLuciadFusion

LCD-9910
Improved asynchronous painting performance in ILcdGXYView instances with many invisible layers.

ImprovementLuciadFusion

LCD-7843
TLcdOGCModelReferenceParser: the decoder can now parse model references in the form of URLs.

ImprovementLuciadFusion

LCD-10078
An extra constructor has been added to the class TLcdWCSCoverageModelDecoder to allow configuring a custom ILcdOWSHttpTransport instance. This interface is used by the OGC client implementations to perform request / response handling.

ImprovementLuciadFusion

LCD-10054
TLspRasterLayerBuilder and TLspRasterLayer now allow configuring whether the layer should be repainted as soon as a tile is available. If the incremental painting property is set to false, the layer is not updated until all tiles are ready.

ImprovementLuciadFusion

LuciadFusion Studio now supports the localization of the UI text, and allows you to add translations to a new language. Studio determines which language to display based on the language setting in the web browser. if it cannot find a translation match, English is used by default. For more information, please consult the LuciadFusion Platform developer guide.

ImprovementLuciadFusion

The LuciadFusion Studio web front end allows the user to change the name (which is also used as the unique identifier) of a product inside a service. This allows the user to replace a product in a service while keeping the URL to that product intact. For example, when a service serves weather data which gets updated regularly, the user can replace the outdated weather data with fresh data without the need to update the URL used in the client.

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

LF-1332
The LuciadFusion Platform developer, deployment and migration guides have been merged into a single guide. The content of the guides has also been restructured.

ImprovementLuciadFusion

LCD-9017
The abstract model implementation ALcdModel has a method setModelDisposer to register a function to be called on ILcdModel#dispose(). This avoids the need to override the method ILcdModel#dispose() when using a model implementation based on ALcdModel.

The GeoTIFF model decoder registers such a function to the model such that file descriptors are closed on disposal of the model. There is no need anymore to do this yourself for GeoTIFF.

ImprovementLuciadFusion

LCD-2075
TLcdLayerTree now by default hides its root node. If you don't want this, call TLcdLayerTree#setRootVisible(true).

ImprovementLuciadFusion

LCD-9286
TLcdWKTModelReferenceDecoder and TLcdEPSGModelReferenceDecoder now log a warning when a .prj or .epsg file is found, but with an invalid/unsupported WKT or EPSG string.

ImprovementLuciadFusion

TLcdGXYLabelPainter, TLcdGXYPolygonLabelPainter, and TLcdGXYPolylineLabelPainter now support HTML labels. In addition, minor layout issues were resolved in TLcdGXYLabelPainter.

ImprovementLuciadFusion

LCD-9223
TLcdTextIcon is a new multi-line text icon implementation. TLcdBoxIcon draws an outlined and/or filled box around another icon.

ImprovementLuciadFusion

LCD-9922
TLcdDTEDColorModelFactory The default color scheme for elevation data was enhanced to differentiate between levels of 3500m, 4000m, 4500m, 5000m, 5500m and 6000m. Each of these levels now has a different color. This will cause regions with high altitude, like e.g. the Himalayas, to show more details. The createColorModel method uses these updated colors and levels by default. The colors and levels returned by the static methods getDefaultColors and createColorModel will include the updated colors and levels.

ImprovementAdvanced Raster Services

LCD-10270
The TLcdGDALModelDecoder will now try and find external prj or ref files when the georeference of the embedded WKT could not be parsed. This means that it is now possible to georeference a file by adding a WKT string to an external filename.prj file next to the source file.

For more information, have a look at the TLcdWKTModelReferenceDecoder class javadoc.

ImprovementTerrain Analysis Engine

LCD-10266
TLspLOSCalculator now allows LOS calculations to be interrupted.

ImprovementTerrain Analysis Engine

In LOS calculations, the maximum radius and radius step implicitly define the radius sample distances. These are the distances (in meters) from the center of the LOS coverage at which to sample to perform the calculations. Now, radius sample distances can be configured directly via a new property on TLspLOSProperties. This allows you to use your own custom sampling scheme. For example, using small steps close to the center of the coverage and larger steps farther away could help increase the total range without impacting performance and accuracy much.

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-10226
Improved the rendering of the Screen, Cover and Guard military symbols to better match with the symbol description in the APP-6 / MIL-STD 2525 standards: the letter decoration is now placed next to the starting point of the arrows.

ImprovementDefense Symbology

LCD-10137

Partial support for the military standard APP-6D has been added. It is now possible to create and visualize TLcdEditableAPP6AObject instances using the APP-6D 20-digit SIDC codes. TLcdAPP6ANode also exposes the new domain hierarchy.

The supported symbol sets are:

  • 00: Unknown
  • 01: Air
  • 02: Air Missile
  • 05: Space
  • 10: Land Unit
  • 11: Land Civilian Organization
  • 15: Land Equipment
  • 20: Land Installation
  • 27: Dismounted Individual
  • 30: Sea Surface
  • 35: Sea Subsurface
  • 36: Mine Warfare
  • 37: Activities

ImprovementDefense Symbology

Support for the military standard MIL-STD-2525D has been added. It is now possible to create and visualize TLcdEditableMS2525bObject instances using the new 20-digit SIDC codes. TLcdMS2525bNode also exposes the new domain hierarchy.

ImprovementDefense Symbology

LF-1126
Military symbols can now be retrieved as a PNG. This is useful if a symbol should be displayed in a context where an anchor point is not needed. Previously the symbol needed to be extracted from the JSON response containing both the symbol and the anchor point. To retrieve the symbol as a PNG the Accept header of the request needs to be set to image/png.

Bug fixLuciadFusion

LF-1632
Fixed fusing a raster coverage of type IMAGE with an area of interest (bounding box) for geographic references. The area of interest was internally converted to a polygon to determine the clip to apply.

Bug fixLuciadFusion

LCD-10277
Fixed an issue when displaying lines with 3D information from LuciadFusion vector coverages. In some cases, their Z information got lost.

Bug fixLuciadFusion

LCD-10288
TLcdClusteringTransformer: When reused after another transformer was configured on the TLcdTransformingModel, model changes that occurred when it was not in use, were not visualized anymore (e.g. added elements were missing).

Bug fixLuciadFusion

LCD-10290
Visualizing a Lightspeed layer created for a model with zero width and/or height bounds in combination with an OGC SLD style containing one or more rules with filters could lead to an IllegalStateException.

Bug fixLuciadFusion

LF-1634
Fixed an issue where the preview map on the product detail page doesn't fit on the data.

Bug fixLuciadFusion

LF-1633
Fixed an issue where the geometric error of the preprocessed data is extremely large for non-leveled point clouds. This caused problems when trying to visualize such a this preprocessed result in the client.

Bug fixLuciadFusion

LCD-10168
TLcdOGC3DTilesModelDecoder now correctly decodes normals. This especially improves the rendering of meshes without textures when lighting is enabled.

Bug fixLuciadFusion

LCD-10091
XML framework: fixed a ClassCastException when working with an XML list type of xsd:integer or xsd:long values.

Bug fixLuciadFusion

LCD-9111
Fixed bug that would make OpenFlight models have incorrect bounding boxes, because transformations were not taken into account.

Bug fixLuciadFusion

LCD-9927
The model metadata of OpenFlight models decoded by TLcdOpenFlightModelDecoder will now also include the bounding box.

Bug fixLuciadFusion

LF-1519
Fixed an issue where web clients (web browser, LuciadRIA) requesting a tile from a service (e.g. WMS or OGC 3D Tiles) would not cache the result. This reduces the amount of requests sent to the LuciadFusion server.

Bug fixTerrain Analysis Engine

LCD-9036
The TLcdColorMap configured on a TLspLOSCoverageStyle can be gradient or piecewise constant. When piecewise constant, the invisible and unknown color configured on the TLspLOSCoverageStyle were not applied correctly. To specify the invisible or unknown color, use invisibleColor or unknownColor on TLspLOSCoverageStyle.Builder respectively when building the style.

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-9819

Improved the rendering of T-shaped and U-shaped military symbols in the APP-6 / MIL-STD 2525 standards.

The updated symbol set are:

  • Block
  • Breach
  • Bypass
  • Canalize
  • Clear
  • Contain
  • Penetrate
  • Bypass Easy
  • Bypass Difficult
  • Bypass Impossible

Bug fixDefense Symbology

LCD-10118
Improved the rendering of the "Infiltration Lane" and "Roadblocks, Craters, and Blown Bridges: Planned" military symbols to better align with the selection rectangle in GXY for some geo-references (e.g. Equidistant Cylindrical).

Bug fixDefense Symbology

LCD-10151
Fixed slow military symbology label painting performance in case of labels with Arabic text and a label halo style.

Bug fixDefense Symbology

LCD-10217
Fixed bug were editing constraints were not properly applied to some symbols.
Affected symbols
APP6-C
Name Code(SIDC)
Control 25321300
Locate 25323600
Affected symbols
APP6-A / APP6-B
Name Code(SIDC) Hierarchy Code
Occupy G*T*GO----*****" 2.X.1.1.16
Secure G*T*GS----***** 2.X.1.1.21
Affected symbols
MIL-STD-2525 B / MIL-STD-2525 C
Name Code(SIDC) Hierarchy Code
Occupy G*T*O-----****X 2.X.1.16
Secure G*T*S-----****X" 2.X.1.21

Bug fixDefense Symbology

LCD-10231
Changed the default NVG element binding for the following APP-6C symbols from polygon to multipoint:
Name Code(SIDC)
Control 25321300
Locate 25323600

Upgrade considerationLuciadFusion

A uniqueness constraint was added to the public id columns of the tables that contain Data and Services in the database (imported_data and geo_service). The REST API uses the public id as the identifier for Data and Services and requires this value to be unique. Ensure that all the public ids of Data and Services are unique before upgrading or it will fail.

Upgrade considerationLuciadFusion

The addition of the REST API requires that the 'pgcrypto' extension need to be enabled when using a PostgreSQL database. This extension allows LuciadFusion to create unique identifiers (of type UUID) for the domain objects that are obtainable through the REST API.

Upgrade considerationLuciadFusion

Added a dependency to the LWJGL library version 3.2.0, used to retrieve window handles.

Upgrade considerationLuciadFusion

The JOGL, JOCL, and GlueGen libraries have been updated to version 2.3.2+3-lcd. This is the same as the official 2.3.2 version of JOGL, with the exception that it contains a fix to prevent a JVM crash when closing an application on the Mac OS X platform when using OpenJDK 11.

Upgrade considerationLuciadFusion

For Java 11 support, Spring Boot and its dependencies have been upgraded. The libraries that have been upgraded are as follows:
  • Spring Boot (version 2.1.0.RELEASE)
  • Spring Core (version 5.1.2.RELEASE)
  • Spring AOP (version 5.1.2.RELEASE)
  • Spring Beans (version 5.1.2.RELEASE)
  • Spring Expression (version 5.1.2.RELEASE)
  • Spring Context (version 5.1.2.RELEASE)
  • Spring JDBC (version 5.1.2.RELEASE)
  • Spring Security LDAP (version 5.1.1.RELEASE)
  • Spring Boot Starter (version 2.1.0.RELEASE)
  • Spring Boot Starter Actuator (version 2.1.0.RELEASE)
  • Spring Boot Starter Security (version 2.1.0.RELEASE)
  • Spring Boot Starter Web (version 2.1.0.RELEASE)
  • Spring Boot Starter Websocket (version 2.1.0.RELEASE)
  • Spring Boot Configuration Processor (version 2.1.0.RELEASE)
  • Spring Cloud Eureka (version 2.1.0.M1)
  • HikariCP (version 3.2.0)
  • Jackson (version 2.9.7)
  • Gson 2.8.7
  • JAXB Api (version 2.3.1)
  • JAXB Implementation (version 2.3.0.1)
  • Javax Annotation API (version 1.3.2)
The following properties were updated along with these libraries.
  • server.context-path property has been changed to server.servlet.context-path.
  • server.session.timeout property has been changed to server.servlet.session.timeout.
  • management.context-path has been renamed as management.server.servlet.context-path, therefore the properties which use it have been adjusted accordingly. endpointPattern of fusion.actuators.security.authenticatedEndpoints has been changed.
  • Property 'management.security.enabled' is deprecated, there is no longer a separate security auto-configuration for the Actuators. For more information please refer Spring Boot 2.0 Migration Guide - Actuator Security
  • Property 'security.basic.enabled' is deprecated, the security auto-configuration is no longer customizable.
  • management.endpoints.web.exposure.include has been added to determine which actuator endpoints will be exposed. For more information about the Actuator configuration, please refer to:

Upgrade considerationLuciadFusion

Some API constructs in Luciad's abstract OpenGL binding have been deprecated:
  • ILcdGLBufferFactory and ILcdGLBuffer should be replaced by the equivalent java.nio.Buffer constructs.
  • The makeCurrent(), canMakeCurrent() and release() methods of ILcdGLDrawable are prone to improper use. Code that requires an active OpenGL context outside of a regular repaint cycle should instead be scheduled using the invokeLater() or invokeAndWait() method of the drawable.
  • ILcdGLEventListener#displayChanged() is never called by any current implementations of ILcdGLDrawable. The init() method serves essentially the same purpose and should be used instead.

Upgrade considerationLuciadFusion

To document the JSON REST API and provide an interactive console (see LuciadFusion Studio REST API Developer’s Guide - Interactive API documentation) several Swagger related libraries were added. The Guava library has been updated to the version required by these new libraries. The following libraries have been added:
  • Spring-plugin (version 1.2.0.RELEASE)
  • Swagger-Core (version 1.5.20)
  • SpringFox (version 2.9.2)
The following libraries were updated:
  • Guava (version 20.0)

Upgrade considerationLuciadFusion

A new version of the jai_imageio library is used. It no longer depends on classes that are not available in certain Java versions.

2018.0

2018.0.12

ImprovementLuciadFusion

LCD-10242
Improved interoperability with WMS servers that define WMS extensions through the XML Schema attribute 'noNamespaceSchemaLocation'.

ImprovementLuciadFusion

LCD-10187
The WFS server is now flexible against the casing used in the output format parameter in GetFeature requests.

Bug fixLuciadFusion

LCD-10267
The TLcdRasterImageBuilder now handles the case of an ILcdRaster with a large tile size.

Bug fixLuciadFusion

LCD-10264
Fixed TLcdDTEDModelDecoder behavior which became more strict in 2018.0 on DTED file names. This was related to improved meta data decoding functionality.

Bug fixLuciadFusion

LCD-10260
TLcdCSWDecoder now properly decodes OWS 1.0 exception reports.

Bug fixLuciadFusion

LF-1113
A fallback has been added to the crawling process in case the original model reference cannot be encoded in WKT. Now WGS 84 will be used as a default and the model bounds will be converted to WGS 84. This results in Studio being able to crawl files with special model references which cannot be encoded in WKT, which used to fail. This mainly affects raster formats, in particular GeospatialPDF.

Bug fixLuciadFusion

LF-1629
The Fusion server process did not shut down properly when triggering the Spring shutdown actuator.

Bug fixLuciadFusion

LCD-10212, LCD-10213, LF-1626
Fixed an issue where the WMTS server could produce:
  • inverted-color images for jpeg output.
  • non-transparent images for png output with requested transparency for the map background.
The server now returns a proper image.

Bug fixLuciadFusion

LCD-10244
Fixed an issue that could cause TLcdClusteringTransformer to stop updating clusters if the user intentionally sets the system clock back while the application is running.

Bug fixLuciadFusion

LCD-10225
TLcdClusteringTransformer: when using multiple scale denominators to create a scale based cluster transformer with TLcdClusteringTransformer#createScaleDependent, an exception was incorrectly thrown when the denominators were ordered from low to high values. As a result it was not possible to create a scale based cluster with more than one scale denominator.

Bug fixLuciadFusion

LF-1623
The LuciadFusion Platform CSW catalogue service now uses the correct context path for the links in the service metadata.

Bug fixLuciadFusion

LCD-10203
TLspPlotLayerBuilder : Fixed a NullPointerException that could occur when performing a query on a plot layer (e.g. when using the select controller).

Bug fixLuciadFusion

LCD-10161
Fixed an issue where point-to-point snapping could behave erratically for domain objects that do not implement ILcdPoint.

Bug fixLuciadFusion

LCD-5486, LCD-9543
The SLD GXY raster rendering pipeline did not respect any configured scale ranges. The scale ranges were applied but an additional scale range was often added depending on the pixel density of the data.

Bug fixLuciadFusion

LCD-10188
The SLD Lightspeed raster rendering pipeline did not support the use of a geometry property name in raster symbolizers.

Bug fixLuciadFusion

LCD-10179
Fixed the handling of negative GridOffsets X / Y / Z resolution values in WCS 1.1 GetCoverage requests.

Upgrade considerationLuciadFusion

TLcdClusteringTransformer#createScaleDependent has been deprecated. To create a scale based cluster transformer TLcdClusteringTransformer#createMapScaleDependent should be used instead.

2018.0.11

ImprovementLuciadFusion

LCD-9732
The WFS client samples now enable support for the GeoJSON exchange format, next to GML 2 / 3.1 / 3.2.

ImprovementLuciadFusion

LCD-10181, LCD-10210
TLcdBingMapsModelDecoder now uses HTTPS for its imagery and tile requests.

Bug fixLuciadFusion

LF-1625
Fixed issue where recrawling a data root would not cause derivative products and services to have updated bounds in their metadata.

Bug fixLuciadFusion

LF-1624
Fixed issue where recrawling a data root would not cause some data with new content to have updated bounds.

Bug fixLuciadFusion

LCD-9926
Fixed an issue in TLcdGXYCirclePainter that would break outline selection and isTouched behavior when working with multiple circles. This also affected the editing of variable width buffers.

Bug fixLuciadFusion

LCD-10202
In some cases, the Z (height) information of rhumb polylines was lost when visualizing in a Lightspeed 3D view. This happened when a lon-lat-height rhumb polyline was part of a composite curve. This is now resolved.

Bug fixLuciadFusion

LF-1616
Fixed an issue that would not properly update a Product when any of its Data entries was deleted.

Bug fixWeather & Environment Standards

LCD-10228
For some grib files, TLcdNetCDFModelDecoder couldn't decode some of its variables when specifying them using a TLcdNetCDFDataSource instance.

Bug fixWeather & Environment Standards

LCD-10220
TLcdNetCDFModelDecoder can now handle more files that are produced using the Panoply application from NASA.

Bug fixDefense Symbology

LCD-10221
Fixed a regression introduced by LCD-10190, causing exceptions to be thrown when creating and visualizing a Weapons/Sensor Range Fan symbol in a Lightspeed view.

Bug fixRadar Connectors

LCD-10176
"Time of Day" (Data Item I021/030) octets of ASTERIX Category 21 (version 0.23) are now decoded as unsigned numbers.

Upgrade considerationDefense Symbology

LCD-10190
Weapons/Sensor Range Fans now allow specifying a non-zero minimum radius for the first arc band. The shape now requires 4 points for the first arc band instead of 3. If you programmatically created such shapes, make sure to insert the minimum radius point after the center.

2018.0.10

ImprovementLuciadFusion

LCD-10196
TLcdImageModelMeasureProviderFactory now creates providers that track model changes.

ImprovementLuciadFusion

LCD-10182
The magnetic north data files for WMM now use the WMM2015v2 coefficients. NOAA has issued this update to address degraded performance of the WMM2015 in the Arctic region.

ImprovementLuciadFusion

ILspTerrainSupport now has an additional intersectTerrain method which can be used to perform ray/terrain intersection tests even when the view is set to 2D.

ImprovementDefense Symbology

LCD-10157
Configured an icon for the APP6-A/B symbol 'Area Target' (2.X.2.3.3.3)

Bug fixLuciadFusion

LCD-10186
Fixed an integer overflow issue that caused transactions of over 2 GiB to be rolled back after encoding. This would appear to a user as if the data was being encoded correctly, i.e. the output file would grow steadily, only to suddenly disappear at the end.

Bug fixLuciadFusion

LCD-9716
TLspShapeLayerBuilder: An OutOfMemoryException could occur in some cases when visualizing dynamic data in layers build with TLspShapeLayerBuilder.

Bug fixLuciadFusion

LCD-10180
Fixed an issue where a ConcurrentModificationException was triggered in some rare cases.

Bug fixLuciadFusion

LCD-10175
Fixed issue where creating a point near the start and endpoint of a pointlist would not work.

Bug fixLuciadFusion

LCD-10146
Fixed bug that could cause the TLspContext of an ALspLayer to (incorrectly) return a null pointer when calling #getModel.

Bug fixLuciadFusion

LCD-10154
The vertical label displacement property in SLD styles was incorrectly interpreted downwards instead of upwards in a GXY view.

Bug fixLuciadFusion

LCD-10124
Fixed an issue that would cause point insertion not to work correctly for 3D pointlists in a 3D view on high-altitude terrain.

Bug fixLuciadFusion

LCD-10155
A threading issue within an internal GXY view pool used by the WMS has been fixed. Internal clean up could result in a NoSuchElementException which in turn would result in HTTP status code 500 (internal server error).

Bug fixDefense Symbology

LCD-10177
Fixed an issue where Hostile Static Depiction symbols in MIL-STD 2525 b/c where painted with only one ENY label in Lightspeed

Bug fixDefense Symbology

LCD-10169
The color (affiliation and default color) of unframed APP-6 icons could not be changed.

Bug fixDefense Symbology

LCD-9899
Weapons/Sensor Range Fans no longer look solid when painted with dashed stroke and overlapping.

Bug fixDefense Symbology

LCD-10165
Last point representing arrow width of multipoint arrows is placed to the left of the arrow head instead of to the right

Bug fixDefense Symbology

LCD-10158
Fixed issue were two points were placed when finishing the creation of an NVG arrow military symbol in Lightspeed.

2018.0.09

ImprovementLuciadFusion

LF-1599
End point url is added for CSW metadata records of 3D Tiles services.

ImprovementDefense Symbology

LCD-10135
Added support for the symbol status codes "Present/Damaged", "Present/Destroyed" and "Present/Full To Capacity" in APP-6C.

ImprovementMaritime Standards

The ECDIS decoders and visualization now support InlandECDIS (IENC).

You can simply use TLcdS57UnifiedModelDecoder to decode an IENC CATALOG.031 or.000 cell file. The product type will be ELcdS57ProductType.IENC.

The decoder supports IENC versions 2.0, 2.1, 2.2, 2.3 and 2.4. The visualization will use the display rules from IENC 2.4.

To visualize the data in a Lightspeed view, use TLspS52LayerBuilder.

To visualize the data in a GXY view, use TLcdS52GXYLayerFactory.

You can configure your ship's beam and air draft on the S-52 display settings (see TLcdS52DisplaySettings). These settings affect the visualization of the safety of fixed bridges.

If necessary, you can also use TLcdS57ProductConfiguration and TLcdS52ProductConfiguration with product type IENC to have more fine-grained control over the decoding and/or visualization, as described in Chapter 12 of the Maritime Standards Developer's Guide.

ImprovementS-63

The S-63 ECDIS decoder (TLcdS63UnifiedModelDecoder and variants) now supports InlandECDIS (IENC). For details, see the release note in the Maritime Standards component.

Bug fixLuciadFusion

The GLTF decoder now accepts missing primitive type. When that field is incorrect or absent, the decoder now simply falls back to GL.Triangle.

Bug fixLuciadFusion

LCD-10141
Fixed a quadratic complexity problem in TLcdGXYContinuousLabelingAlgorithm that could cause performance problems when working with 100s/1000s of labels.

Bug fixLuciadFusion

LCD-10138
Fixed an issue with touch controllers on TLspExternalView. At some point, it would try and create an AWTEvent with a null source component.

Bug fixLuciadFusion

LCD-10031
Fixed an issue where tilting or zooming past a certain threshold caused a flicker for draped raster layers in 3D views.

Bug fixLuciadFusion

LCD-10149
The GeoTIFF encoder now encodes model references with a user defined geodetic datum correctly. Only the first parameter of the geodetic datum transformation was stored.

Bug fixLuciadFusion

LCD-10134
The parsing of the WMS capabilities could get into an infinite loop in the case a WMS layer is defined without a geographic coordinate reference, i.e., CRS:1.

Bug fixLuciadFusion

LCD-10097
Fixed an issue where an image height provider returned an incorrect value for a coordinate on the edge of a tile in certain cases.

Bug fixLuciadFusion

LF-1600
The LuciadFusion Platform WMS service now defines correct bounds for the root WMS layer inside the capabilities, instead of always using the world extent.

Bug fixReal-time Engine

LCD-10141
Fixed a quadratic complexity problem in TLcdGXYContinuousLabelingAlgorithm that could cause performance problems when working with 100s/1000s of labels.

Bug fixDefense Symbology

LCD-9886
Improved the rendering quality of the Static Depiction symbol in MIL-STD 2525 b/c by enhancing the accuracy of the inner circles and increasing the readability of the ENY text (in case of hostile affiliation).

Bug fixDefense Symbology

LCD-10120
Fixed placement of the last point of multipoint symbols that could be represented with both arrow and multipoint elements. The last point of multipoint elements used to be placed at the tail of the arrow, it is now placed at the corner of the arrow head, as is specified in the NVG specification.

Bug fixDefense Symbology

LCD-10133
The fix for issue LCD-9300 introduced a bug in the editing behaviour of the Arrow symbols for GXY and Lightspeed views. this bug has now been fixed.

Upgrade considerationDefense Symbology

LCD-10136
The two-digit APP-6C code used for echelons at Brigade level and below was not correct: the echelons Brigade, Regiment/Group, Batallion/Squadron, Company/Battery/Troop, Platoon/Detachment, Section, Squad and Team/Crew were respectively incorrectly set to the digits 18, 17, 16, 15, 14, 13, 12 and 11 instead of to the expected digits 11, 12, 13, 14, 15, 16, 17 and 18.

2018.0.07

ImprovementLuciadFusion

LCD-10114
The GeoTIFF decoder supports a user defined projection (GeoTIFF key 3075) with coordinate transformation code 9815 as Hotine Oblique Mercator (variant B), as defined in the EPSG database.

Bug fixLuciadFusion

LCD-10113
TLspParameterizedLineStyle: An IllegalArgumentException would be thrown for some Color values that were provided as an attribute in a ILcdExpression when selecting an object.

2018.0.04

ImprovementLuciadFusion

LF-1476
Improved the performance of services with many products.

ImprovementLuciadFusion

LF-1497

The TLfnRasterCoverageMetadata now allows to define an area of interest (bounding box), which is used to clip the data within the raster coverage. This does not affect the coverage tile set structure which is determined by the bounding box.

Note that the version number of the tile store format has been updated for this.

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-10090
Improved feedback and documentation when using invalid APP-6 and MIL-STD 2525 symbol codes.

ImprovementDefense Symbology

Small improvements to some APP-6C icons.

Bug fixLuciadFusion

LF-1568
Service exception reports returned by the WMTS service are now of content type 'text/xml'. Previously the content type was not in accordance with the OGC WMTS protocol specification.

Bug fixLuciadFusion

LF-1568
Service exception reports returned by the WFS service are now of content type 'text/xml'. Previously the content type was not in accordance with the OGC WFS protocol specification.

Bug fixLuciadFusion

LF-1568
Service exception reports returned by the WCS service are now of content type 'text/xml' when using version 1.1.0 or 1.1.1 of the protocol. Previously the content type was not in accordance with the OGC WCS protocol specification for version 1.1.0 and 1.1.1.

Bug fixLuciadFusion

LCD-10086
Fixed an issue with right-clicks in Swing views. Lightspeed incorrectly assumed that these right-clicks had the CTRL modifier set (due to https://bugs.openjdk.java.net/browse/JDK-8041928). One way this manifested itself, was that right-clicking on selected objects in a Swing view, would deselect the objects.

Bug fixLuciadFusion

LCD-10071
TLcdOGCFilterEvaluator#buildFilter would return ILcdDynamicFilter instances for unsupported TLcdOGCFilter instances. Using the returned dynamic filter would result in runtime exceptions (like NullPointerExpceptions).

Bug fixLuciadFusion

LCD-10082
The evaluation of a OGC filter could result in a NullPointerException when the filter contains XPaths using the descendant-or-self axis specifier.

Bug fixLuciadFusion

LCD-10060
TLspShapeLayerBuilder: Fixed a memory leak that could occur when modifying elements of the layer's model. This could only occur when the layer was configured with a TLcdModelQueryConfiguration and/or the minimum object size for painting was not equal to 0.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixDefense Symbology

The "Feint/Dummy Headquarters" value for APP-6C installations was not visualized.

Bug fixDefense Symbology

LCD-9492
Fixed an issue where accessing TLcdEditableAPP6AObject and TLcdEditableMS2525bObject using the ILcdDataObject interface returned outdated values.

Bug fixDefense Symbology

LCD-10088
Fixed an issue for APP-6C where retrieving country values from a symbol using ILcdDataObject could trigger an exception.

Bug fixDefense Symbology

LCD-10085
Fixed a problem in TLcdNVGGXYPainterProvider that caused a missing view repaint when using NVG data containing text in combination with asynchronous painting.

Bug fixDefense Symbology

LCD-9889
Added Hostility (ENY) labels to the Trip Wire symbol for the standards MIL-STD-2525 b/c and APP6-A/B/C

Bug fixDefense Symbology

LCD-10027
Fixed issue where NVG text elements weren't updated on screen when the text content changed

2018.0.03

ImprovementLuciadFusion

LCD-10077
TLcdSVGIcon now supports icons that have no width or size but do have a view box.

ImprovementLuciadFusion

LCD-10068
The TLcdGeoJsonModelDecoder will set TLcdCoreDataTypes.DOUBLE_TYPE and TLcdCoreDataTypes.LONG_TYPE respectively in the data type for double and long values, instead of TLcdCoreDataTypes.NUMBER_TYPE for both.

ImprovementLuciadFusion

LF-1555
The page where the files shared through the File Server services are listed is made accessible to everybody, users don't have to log in anymore.

ImprovementLuciadFusion

LF-1537
File Server: improved performance when browsing very large datasets.

ImprovementLuciadFusion

LF-1564
During the creation of 3D Tiles services, the preprocessing output directory can now be changed.

ImprovementLuciadFusion

LCD-9999
Model metadata retrieved from any model that also implements ILcdModelContainer will now by default include the data categories of the contained submodels as well.

ImprovementLuciadFusion

LCD-9967
ALcdModel has new methods to set or get the function that is used to collect metadata for the model. See ALcdModel#getModelMetadataFunction and ALcdModel#setModelMetadataFunction

ImprovementRadar Connectors

LCD-9760
TLcdASTERIXCategory62: Following trajectory properties are now available on the TLcdASTERIXTrajectory and their values can be changed by calling the setValue method in the ILcdDataObject interface:
  • Callsign
  • IFPSFlightId and all its subproperties
  • FlightCategory and all its subproperties
  • TypeOfAircraft
  • WakeTurbulenceCategory
  • DepartureAirport
  • DestinationAirport

Bug fixLuciadFusion

LCD-10072
Removed the enforcing of accessor.byteOffset as per the GLTF 2.0 spec.

Bug fixLuciadFusion

Resolved a constructor issue in TLcdCGMModelDescriptor.

Bug fixLuciadFusion

LCD-9952
The GeoTIFF decoder now can handle case of missing ProjectedCSTypeGeoKey within the GeoTIFF tags by handling it as user defined.

Bug fixLuciadFusion

LCD-9955
The GeoTIFF decoder now correctly interprets model references where a user defined geodetic datum is used (GeoTIFF key 2062). The interpretation of the rotation and the scale correction has been fixed.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Upgrade considerationLuciadFusion

LCD-10003
TLcdModelList#setClassTraceOn is now declared static, similar to other classes with that method. If you override this method somewhere in your code, you should make that overriding method static as well.

Upgrade considerationLuciadFusion

LCD-10001
TLcdFeatureIndexedAnd2DBoundsIndexedModel#setTraceOn is no longer declared static. This was a bug, since the method would enable tracing on for every instance of that class, which is not what the javadoc says it does. If you call this method statically somewhere in your code, you should either:
  • replace it with a call to TLcdFeatureIndexedAnd2DBoundsIndexedModel#setClassTraceOn, which results in the same behaviour as before, or
  • call the method on a specific instance of the class.

2018.0.02

ImprovementLuciadFusion

LCD-10013
TLcdWKTReferenceFormatter now better detects if a geodetic datum uses a vertical reference.

ImprovementLuciadFusion

LF-1588
Improved the geometric error calculation for preprocessed point clouds. To benefit from this improvement, remove and recreate your OGC 3D Tiles services.

ImprovementLuciadFusion

The EPSG resources are updated to EPSG database v9.3.

ImprovementLuciadFusion

LCD-3324
The TLcdGeoJsonModelEncoder will now include the bounding box ('bbox' property) in the resulting geojson file if the model to be encoded is ILcdBounded.

ImprovementLuciadFusion

LCD-6117
The MIF model decoder now supports a lot more different geodetic datums. For a detailed list of supported datums, refer to the javadoc of TLcdMIFModelReferenceParser.

ImprovementLuciadFusion

LCD-7968
TLcdGeoJsonModelDecoder can now decode geojson files with properties that have special characters (non-alphanumerics/underscores) in their name. Note that such properties will be renamed to something that does meet the requirements.

ImprovementLuciadFusion

LF-1139, LF-1492
When extending LuciadFusion Platform with additional controllers/services, it is now possible to reuse the TLfnFusionPlatformApplication class instead of creating a new main class. This enhancement fixes the problem where servlet containers start up LuciadFusion Platform more than once because multiple application entry points are discovered. You can now plug in additional Spring classes by using the fusion.config.additionalScanPackages property. See config/application-fusion.common.yml or the development guide for more information on how to use this property.

ImprovementLuciadFusion

LCD-9283
TLcdSHPModelEncoder: The DBF file writer now logs warning messages when field names are truncated because of the limiting dBASE IV format.

ImprovementLuciadFusion

LCD-9931, LCD-9883, LCD-9281
Improved error messages when TLcdSHPModelDecoder2 encounters corrupted SHX, SBN or SBX files.

ImprovementLuciadFusion

LCD-10000
TLcdInputStreamFactory now supports relative paths in HTTP/HTTPS URL's.

ImprovementLuciadFusion

LF-1259
The crawling engine will now consider both directories and files, where before it considered only files. This allows directory-based model decoders to be plugged into the crawling engine.

ImprovementLuciadFusion

LF-1534, LF-1535
Improved the metadata retrieval speed and memory usage for preprocessed point clouds. To benefit from this improvement, remove and recreate your OGC 3D Tiles services. Improved the preprocessing speed for very large mesh datasets.

ImprovementLuciadFusion

LCD-9881
The geojson model decoder now uses EPSG:4979 as default fallback reference when the input file contains Z-coordinates.

ImprovementWeather & Environment Standards

LCD-9054
TLcdNetCDFModelDecoder The logic that automatically combines variables for the creation of a multi-band image (e.g. northward and eastward wind) has been improved.

ImprovementWeather & Environment Standards

LCD-9762
The TLcdNetCDFModelDecoder now accepts files with extension .hdf, .h5, .he5 or .hdf5.

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementAviation Standards

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

ImprovementDefense Symbology

LCD-9888
Added UniqueDesignation label to the MIL-STD-2525 c symbols 'Biological Contaminated Area symbols' (G*MPNB---***X) and 'Chemically Contaminated Area' (G*MPNC--**X) (and equivalent symbols of MIL-STD 2525 c and APP6-A/B/C)

Bug fixLuciadFusion

LCD-10028
The Maven deployment script in build/maven will no longer allow deployment to the system's local repository (~/.m2/repository) since doing so results in file corruption. The default repository path has been updated to a more suitable location.

Bug fixLuciadFusion

LCD-10013
TLcdWKTReferenceParser added incorrect authority and axis metadata to compound WKT references.

Bug fixLuciadFusion

LCD-10040
Considerably improved snapping performance in Lightspeed views for large complex polygons.

Bug fixLuciadFusion

LCD-9984
Added support for content.uri in tilesets. If one of content.url or content.uri is not present, the other will be used.

Bug fixLuciadFusion

LCD-10038
Fixed an issue that caused some database decoders (e.g. Oracle) to construct an empty or syntactically incorrect column list whenever values with vendor-specific data types are selected.

Bug fixLuciadFusion

LCD-10024
Fixed a where hidden entrypoint files were taken into account instead of the non-hidden corresponding files.

Bug fixLuciadFusion

LCD-9263
Fixed bug that could crash the TLcdSHPModelDecoder2 when multiple threads concurrently try to decode the same .shp file that is missing a valid corresponding .sbn or .sbx file.

Bug fixLuciadFusion

LF-1509
LuciadFusion Platform now always disables the use of OpenCL in the imaging engine by default. You can enable it again using the com.luciad.imaging.disableOpenCLImagingEngine system property.

Bug fixLuciadFusion

LCD-10004
LuciadLightspeed now supports OGC 3D Tiles URL containing query parameters and correctly uses those for all subsequent requests.

Bug fixLuciadFusion

LCD-9934
Fixed bug in TLcdSHPModelDecoder that would leak the .dbf file descriptor when a shape file's header could not be read.

Bug fixLuciadFusion

Improved the compatibility of the OGC 3D Tiles service with respect to the OGC 3D Tiles specification. To benefit from this, remove and recreate any mesh-based OGC 3D Tiles services.

Bug fixLuciadFusion

LCD-8540
licenseserver.exe: when you specify a log file, the log file will now contain the log messages for all specified license files, instead of only the messages for the first given license file.

Bug fixLuciadFusion

LCD-9954
Added support for content.uri in tilesets. This is now used by default instead of content.url

Bug fixLuciadFusion

LCD-9935
Fixed a precision problem occurring with 3DTiles' not axis-aligned Bounding Boxes.

Bug fixLuciadFusion

LCD-9402
The OBJ model decoder now correctly handles referenced texture files that contain spaces in their path.

Bug fixLuciadFusion

LCD-7888
The geojson model decoder now simply ignores features with a null geometry, instead of throwing an exception.

Bug fixLuciadFusion

LCD-9770
Different geojson features with the exact same geometry are no longer considered 'equal' by their equals method.

Bug fixLuciadFusion

LCD-9930
The default, automatically generated URLs listed in the operations metadata of the WFS capabilities did not include the part covered by a wildcard URL pattern defined in the deployment descriptor.

Bug fixLuciadFusion

LF-1525
In specific cases the crawler included the point (0,0) when determining the extent of the data set.

Bug fixWeather & Environment Standards

LCD-10011
TLcdNetCDFModelDecoder Resolved an issue where variables were incorrectly combined for the creation of multi-band images if they had very similar names. This fixes some problems introduced by the changes made in LCD-9700.

Bug fixWeather & Environment Standards

LCD-9700
The system property com.luciad.netcdf.cachedir can now be used to set the NetCDF cache directory. This directory is used e.g. for GRIB index files. Setting this property prevents issues with creating cache files in case the default chosen cache directory is non-writable. The system property can be set by providing it as a VM argument, e.g. -Dcom.luciad.netcdf.cachedir=<a-valid-path>. The directory provided in the system property will be created if it is not available.

Bug fixAviation Standards

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

Bug fixAviation Standards

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

Bug fixDefense Symbology

LCD-10012
The Infiltration Lane symbol incorrectly painted a wave pattern with many waves. This symbol is now painted with only 2 repeating waves in the wave pattern. This way it matches the template as specified in the MIL-STD 2525 b/c and APP6-a/b/c standards.

2018.0

ImprovementLuciadFusion

TLspViewNavigationUtil's fit behavior now uses the TLcdModelMetadata bounds, if present. This makes the fit behavior more consistent, regardless of whether or not the model is ILcdBounded.

ImprovementLuciadFusion

LF-1214
The drop-down menu of available data formats in Studio's data table now shows a nice, human-readable name for the GeoPackage and LRDB formats.

ImprovementLuciadFusion

LCD-9816
The XML decoders now accept anyURI values with spaces. Although it is highly discouraged to use spaces in an anyUri, it is not prohibited - see https://www.w3.org/TR/xmlschema-2/#anyURI.

ImprovementLuciadFusion

LCD-6481
TLcdLASModelDecoder#setPerformBoundsAndRangeScan now allows skipping the (limited) data scan during decoding.

ImprovementLuciadFusion

LCD-9603
TLcdCSVModelDecoder now supports newline characters in quoted content.

ImprovementLuciadFusion

OGC filter: some new vendor specific functions have been added allowing to check whether a property matches one of multiple values. Consult the javadoc of the TLcdOGCVendorSpecificFunctions class for more information.

ImprovementLuciadFusion

LuciadFusion Studio now includes a 3D Tiles service. Using this service you can stream a massive amount of mesh and/or point cloud data to any client supporting the 3D Tiles protocol. The supported input formats are OSGB and LAS/LAZ files. Point cloud data is automatically preprocessed into a spatially indexed multi-level point cloud store.

ImprovementLuciadFusion

ImprovementLuciadFusion

TLcdPointCloudModelDecoder: this new class decodes point clouds in the Luciad point cloud file format (tilestore.lpc files).

ImprovementLuciadFusion

LuciadLightspeed now supports the OGC 3D Tiles and OSGB formats. This enables users to decode large 3D mesh or point cloud data sets and display them efficiently in a Lightspeed view. For more details, see:
  • The 3D Tiles Developer's Guide
  • The javadoc of TLcdOGC3DTilesModelDecoder on how to decode OGC 3D Tiles
  • The javadoc of TLcdOSGBModelDecoder on how to decode OSGB files
  • The javadoc of TLsp3DTileLayerBuilder on how to visualize such data

ImprovementLuciadFusion

TLcdExpressionFactory can now create expressions for trigonometric, vector and distance operations. A view position attribute, which represents the view coordinates of the object that is evaluated, was also added.

ImprovementLuciadFusion

Three parameterized styles that can be used by the TLspShapePainter (e.g. layers created with TLspShapeLayerBuilder) were added to the com.luciadview.lightspeed.style package:
  • TLspParameterizedIconStyle
  • TLspParameterizedLineStyle
  • TLspParameterizedFillStyle
These styles are configured using ILcdExpression, which can be created with the TLcdExpressionFactory. This allows to style objects based on their property values without the need to create a custom ALspStyler and submit multiple styles. Since the evaluation of the expressions of the style is done on the GPU and only one style needs to be used for property based styling, performance will improve compared with a custom ALspStyler.

The sample package samples.lightspeed.style.expressions contains a sample demonstrating how the parameterized styles can be used.

These styles can be used for dynamic and static data sets. However, for large static point data sets, it is recommended to use TLspPlotLayerBuilder.

ImprovementLuciadFusion

The properties in the LAS data model (see TLcdLASModelDescriptor) now disallow null values, because they cannot have absent values. Only the "ExtraBytes" property is nullable, because whether or not extra bytes are present depends on the file content, not the LAS point format.

ImprovementLuciadFusion

TLcdOGCWMSProxyModelDecoder: an extra constructor has been added which allows to specify the ILcdOWSTransport. This can for example be used to connect to a server which requires authentication.

ImprovementLuciadFusion

The LAS model decoder can now decode LASzip (LAZ) 1.0, 1.1, 1.2 and 1.3 files. It depends on the laszip4j third party library for this.

ImprovementLuciadFusion

Studio now includes a file server service. You can use it to let users download geospatial dataset files "as is". To allow downloading a dataset, select it in the data view, press "Create Service" and then choose the "File Server" service type.

ImprovementLuciadFusion

LF-1250
Studio now recognizes and stores the relations between a composite dataset and its children. This considerably improves the crawling performance for composite datasets such as ECDIS catalogs and DTED and CADRG data. In addition, the Studio data view now automatically aggregates composite datasets, hiding all children. This behavior is automatically active for all newly crawled content. You can disable it by deactivating the fusion.studio.configuration.hideDataSeriesChildren configuration property.

ImprovementLuciadFusion

The new TLcdModelMetadata class encapsulates advanced metadata information (including ISO 19115 metadata) about ILcdModel instances. ILcdModelDecoder has a new method decodeModelMetadata to retrieve model information without having to decode the entire model. The information can also be accessed from any ILcdModel. The Luciad model decoders have been enhanced to decode the metadata as efficiently as possible and provide more generic metadata, such as the data category, related files and their mime types.

ImprovementLuciadFusion

LCD-9430
ILcdFeatured and related interfaces have been deprecated in favor of ILcdDataObject and TLcdDataModel.

ImprovementLuciadFusion

LCD-8520
Modulo and integer to float conversion operations are added to the TLcdExpressionFactory.

ImprovementLuciadFusion

LCD-7761
The TLcdCSVModelDecoder can be used to decode CSV files.

ImprovementLuciadFusion

The GXY view map implementations (for example, TLcdMapJPanel) now come with grid layers that automatically refine when zooming in. If you want the previous behavior you can call setGridLayer(new TLcdMapLonLatGridLayer());.

ImprovementLuciadFusion

LCD-4316

TLcdCompositeModelReferenceDecoder: a composite model reference decoder has been added. To easily populate the composite instance with all available ILcdModelReferenceDecoder instances, the model reference decoders have been made available as @LcdService.

The same has been done for the encoding of the model references by introducing TLcdCompositeModelReferenceEncoder.

ImprovementLuciadFusion

LCD-9509
The OGC Web Client Suite Developer's Guide has been extended with a quick start sample to illustrate loading WCS, WFS and WMTS data in a GXY and Lightspeed view, next to the existing quick start sample for WMS.

ImprovementLuciadFusion

LCD-8866
The OGC Web Client implementations WMS, WFS, WCS and WMTS now support the use of a "direct data URL", consisting of the server URL and a key-value pair property 'data=...' that refers to the identifier of the desired data (WMS / WMTS layer, WCS coverage or WFS feature type id). This "direct data URL" can be set as follows:
  • WMS: through TLcdOGCWMSProxyModelDecoder#decode or (since issue fix LCD-10047) through TLcdWMSDataSource#Builder#uri.
  • WFS: through TLcdWFSModelDecoderDecorator#decode or (since issue fix LCD-10047) through TLcdWFSDataSource#Builder#uri.
  • WCS: through TLcdWCSCoverageModelDecoder#decode or (since issue fix LCD-10047) through TLcdWCSDataSource#Builder#uri.
  • WMTS: through TLcdWMTSModelDecoder#decode or (since issue fix LCD-10047) through TLcdWMTSDataSource#Builder#uri.

ImprovementLuciadFusion

LCD-9409
To ease connecting to a WFS and to better align with Luciad's general model decoding API, a new convenience class TLcdWFSDataSource has been introduced. A TLcdWFSDataSource models all aspects of a WFS data source (URL, feature type, format, ...). Instances can be created through the embedded builder and afterwards supplied to TLcdWFSModelDecoderDecorator or TLcdWFSProxyModel#Builder to decode WFS data into a model.

ImprovementLuciadFusion

LCD-9410, LCD-8866
To ease connecting to a WCS and to better align with Luciad's general model decoding API, two new convenience classes TLcdWCSCoverageModelDecoder and TLcdWCSDataSource have been introduced:
  • TLcdWCSCoverageModelDecoder is an implementation of ILcdModelDecoder to decode WCS coverage data into a model. Users can define the data to be decoded as a TLcdWCSDataSource instance (see next bullet) or as a String representing the URL and a key-value pair property 'data=...' that refers to the identifier of the desired coverage.
  • TLcdWCSDataSource models all aspects of a WCS data source (URL, coverage, format, ...). Instances can be created through the embedded builder and afterwards supplied to the new class TLcdWCSCoverageModelDecoder .

ImprovementLuciadFusion

LuciadLightspeed now comes with several JavaFX integration samples, which can be found in the package samples/lightspeed/integration/javafx.

ImprovementLuciadFusion

The Natural Earth sample data (see Shp/NaturalEarth) has been updated to version 4.1.

ImprovementLuciadFusion

com.luciad.util.collections: the collections for primitive types were extended with methods to efficiently add an entire array of values without the overhead of boxing the primitive values. See the javadoc for the new addAll methods for more detail.

ImprovementLuciadFusion

LCD-9096
TLcdCRSReferenceParser and TLcdCRSReferenceFormatter now also support the "CRS:83" and "CRS:27" references, and now also have support for ILcdXYWorldReference. TLcdOGCModelReferenceParser and TLcdOGCModelReferenceFormatter now also handle references in the CRS name space.

ImprovementLuciadFusion

LCD-9611

ImprovementLuciadFusion

LCD-8401
Greatly improved the worst-case performance of TLcdClusteringTransformer. This improvement greatly reduces the clustering time when zooming in on a large (100.000s of points) clustered data set. For a data set with approximately 300.000 points, this can give a 20x performance improvement.

ImprovementLuciadFusion

ILcdSelection now has a new default method getSelectedObjects that exposes the selected objects as a List. In addition, the interface now has a type parameter so you can select more specific collections.

ImprovementLuciadFusion

ILcdModelContainer now has a new default method getModels that exposes the models as a List.

ImprovementLuciadFusion

LCD-9413

ImprovementLuciadFusion

LCD-4144
TLspShapeLayerBuilder: you can now configure whether the created layer should be regarded as a source for snapping points via TLspShapeLayerBuilder#snapTarget.

ImprovementReal-time Engine

TLspRadarVideoLayerBuildernow paints a sweep line, radar grid and range style by default. Before, it only painted the radar video content.

The styler of the built layer implements ILspCustomizableStyler, so you can disable and change the style for this new content using the methods of that interface. Consult the javadoc for detailed information.

ImprovementReal-time Engine

The new TLcdRadar class allows you to visualize radar video data from custom data feeds. See its addRadarSweep method to find out how to pass radar video data into the radar object. The samples.realtime.lightspeed.radarvideo sample demonstrates how to use these classes and how to visualize the data using TLspRadarVideoLayerBuilder.

ImprovementReal-time Engine

LCD-8729
TLspRadarVideoLayerBuilder now offers better support for radar video data in high resolution. Previously, the data was sampled at a smaller resolution before it was shown on the screen. Now the full resolution is preserved.

ImprovementRadar Connectors

LCD-6033
TLcdASTERIXLiveDecoder: you can now pass any ILcdModelContainer to the decode*SFCT, not only a TLcdModelList. For instance, a TLcdModelTreeNode. This is useful if your ASTERIX data contains a mix of category 240 and other categories. For a TLcdModelList, all models need to have the same model reference. However, category 240 models typically has a different model reference than the other categories. TLcdModelTreeNode does not have this restriction.

ImprovementRadar Connectors