2020.0.10

ImprovementOGC Server

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 fixOGC Server

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

2020.0.09

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementOGC Server

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().

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4897
Lucy: when using the dockable front-end, double clicking the title bar of a Lightspeed map application pane and activating the ruler controller would result in an exception.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixOGC Server

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

ImprovementLucy (LuciadLightspeed)

LUCY-4896
TLcyShapeVisibilityAddOn: the calculation now supports observers using com.luciad.tea.TLcdCoverageAltitudeMode.ABOVE_GEOID when the geodetic datum of the model reference of those observers contains geoid information.

ImprovementLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4895
TLcyShapeVisibilityAddOn: the TLcyShapeVisibilityAddOn.VisibilityCalculationProperties.p2pPropagationFunction property from the configuration file was not respected.

Bug fixLuciadLightspeed

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

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
Fixed an issue where processing an OBJ would result in a "too many files open" exception.

2020.0.07

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-11354
TLcdOSGBModelDecoder now supports OSGB version 97.

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixOGC Server

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 fixOGC Server

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 fixAviation Standards

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

2020.0.06

ImprovementLuciadLightspeed

LCD-11341
TLcdGeoJsonModelDecoder now configures a display name provider on the ILcdDataModel 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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

Added convenience API to ease working with SLD geometries based on an OGC function:
  • a new constructor has been added in TLcdSLDGeometry, accepting a TLcdOGCFunction,
  • a new geometry method has been added in the builder of each symbolizer (e.g., TLcdSLDPointSymbolizer), accepting a TLcdOGCFunction.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4894
MGCP data on a Lightspeed map in Lucy now respects the global selection style colors defined in Lucy. It used to always use orange as selection color, independent of what the global selection color was.

Bug fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4892
TLcyDefaultDecodersAddOn: the pen straight line mode setting in the configuration file was ignored.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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
Improved robustness of 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
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
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 fixLucy (LuciadLightspeed)

LUCY-4885
TLcyMutableFileFormatWrapper is now able to encode relative file path locations.

Bug fixLucy (LuciadLightspeed)

LUCY-4889
TLcyLspFallbackFormatAddOn: resolved an issue where saving a workspace could result in a deadlock.

Bug fixLuciadLightspeed

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
When encoding material files, the illum value is now correctly interpreted as an integer instead of a floating point value.

2020.0.04

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

LUCY-4858
TLcyPIMTrackAddOn has a new property TLcyPIMTrackAddOn.useSmoothTurns, which enables/disables smoother turns for a new PIM Trajectory.

ImprovementDefense Symbology

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4692
TLcyPIMTrackAddOn: after turning off the "smooth turns" property in the layer properties dialog and deselecting the trajectory, PIM trajectory was disappearing. The issue is fixed, the pim trajectory no longer disappears if the "smooth turns" property is turned off.

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 ILcdRestrictedLengthPointListwith a minimum point count of 4 points.

Bug fixTiling Engine

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.

Upgrade considerationLuciadLightspeed

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 featureLuciadLightspeed

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:

  • TLspViewBuilder to create TLspFXViewinstances
  • TLcdOverlayPane to easily position nodes in the view's corners or along its edges
  • TLspFXScaleIndicator to visually show the scale of your JavaFX view
  • TLcdFXIcon is a JavaFX node that displays an ILcdIcon
  • TLcdFXEventFilterBuilder to assist with controller chaining
  • TLcdBingMapsLogoIcon#asJavaFXImage and TLspBingMapsCopyrightIcon#asJavaFXImage for displaying Bing copyright information
  • TLspFXBalloonManager for displaying balloons on your maps.

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:

  • The BUFR entry in the Data Formats documentation section
  • TLcdBUFRModelDecoder to decode BUFR files containing SIGWX data.
  • TLspBUFRLayerBuilder to visualize SIGWX models in a Lightspeed view.
  • TLcdBUFRGXYLayerFactory to visualize SIGWX models in a GXY view.
  • TLcdBUFRStyleSettings to customize the BUFR visualization.

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

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

The new TLcyMGCPFormatAddOn add-on provides support for the MGCP 2.0.1 Portrayal standard. Refer to the reference documentation of TLcdMGCPModelDecoder for more information about the supported files.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

The on-map scale indicator now shows a constant scale when panning around the map, making the behavior more intuitive and consistent with both GXY maps and the scale drop-down selector. You can revert to the old behavior by adjusting the TLcyLspMapAddOn.scaleIcon.scaleAtCenterOfMap property in the TLcyLspMapAddOn config file.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

The TLspMagnifierController has been added to Lucy.
This controller allows users to zoom in on a part of the view through 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.

You can find this controller with the other visual inspection controllers in Lucy, such as the swipe and porthole controllers.

ImprovementLuciadLightspeed

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)

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

The new TLcyBUFRFormatAddOn and TLcyLspBUFRFormatAddOn add-ons provide support for the BUFR format. The first add-on provides support for decoding BUFR data and visualizing it on a 2D map, the second for displaying BUFR data on a 3D map. Only BUFR files containing World Area Forecast System (WAFS) Significant Weather (SIGWX) data are supported. Refer to the reference documentation of TLcdBUFRModelDecoder for more information about the supported WAFS SIGWX files.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixInfrastructure Standards

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

Upgrade considerationLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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

Upgrade considerationLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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

ImprovementLuciadLightspeed

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

2019.1.10

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-11263
TLcdCompositeStringTranslator: improved robustness for null strings.

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4777
Don't hide exceptions when we couldn't save a workspace in TLcyFileWorkspaceCodec. (e.g. read-only directory).

Bug fixLuciadLightspeed

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

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

ImprovementLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4847
Lucy: Fixed highlighting for showcase theme thumbnails when hovering above the thumbnail with the mouse.

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixMaritime Standards

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

2019.1.04

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug 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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

LCD-11087
Fixed UnsupportedOperationException in ILcdGL#glGetProgramInfoLog()

2019.1.02

Bug fixLucy (LuciadLightspeed)

LUCY-4866
Using a startup workspace containing DAFIF, ASDI or AIXM5 data resulted in a NullPointerException when starting Lucy.

Bug fixLucy (LuciadLightspeed)

LUCY-4865

The default style files (.sty) for some of the GXY formats (e.g. GeoJSON, SHP, GML, ...) were not applied because they lacked the correct header. Such a header looks like

      #com.luciad.lucy.addons.decoders.TLcyDefaultDecodersAddOn.SHPFormat.layerCodec
    

This issue was fixed by dropping the requirement of the presence of such a header. When the header line is present, it will be checked and it must be the correct one. When no header line is present, the style file is assumed to be in the correct format.

2019.1.01

ImprovementLucy (LuciadLightspeed)

LUCY-4862
TLcyGXYSetControllerActiveSettable.combineWithNavigateController now works with controllers that (only) implement ILcdAWTEventListener.

ImprovementLuciadLightspeed

TLcdGXYCompositeController now also works with ILcdAWTEventListener delegates.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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 MIL-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 fixLuciadLightspeed

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.

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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.

Bug fixTiling Engine

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 fixTiling Engine

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

2019.1

ImprovementLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

The new TLcyShapeVisibilityAddOn and TLcyLspShapeVisibilityFormatAddOn provide functionality to calculate and visualize the visibility between a point observer and a shape on a Lightspeed map. Consult the class javadoc of those add-ons for more information.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

Added Line-of-sight coverage support for Lightspeed maps. You can take any point on the map and add line-of-sight coverage by right clicking and selecting 'Add line-of-sight coverage' from the menu. The line-of-sight will follow the object it is related to. To use the API there is access to a TLcyLOSManager which is available through the Lucy service mechanism. lucyEnv.getService(TLcyLOSManager.class)

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

LUCY-4639
Lucy: a new filter button is added to the table view filtering the table to the elements visible on the map.

ImprovementLucy (LuciadLightspeed)

LUCY-4723
Lucy: added a delete option in the table pop-up menu to delete selected objects.

ImprovementLucy (LuciadLightspeed)

LUCY-4684
The Lucy format safe guard wrappers TLcySafeGuardFormatWrapper and TLcyLspSafeGuardFormatWrapper have been made more robust and no longer throw a java.lang.ArrayStoreException when used with certain format implementations.

ImprovementOGC Server

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.

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4761
Lucy: Pressing 'more...' or 'Edit current' from the projections menu no longer result in an error when none are available.

Bug fixLucy (LuciadLightspeed)

LUCY-4698
Lucy: hitting the maximum table size limit will now log a warning entry. This is to clearly indicate not all items are visible in the table.

Bug fixLucy (LuciadLightspeed)

LUCY-3059
Lucy workspaces now support data sources that are loaded through symbolic links.

Bug fixLucy (LuciadLightspeed)

LUCY-4796
Lucy: To properly display error messages containing xml using html, xml characters are now escaped.

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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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

Upgrade considerationLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

LCD-10973
Improved the accuracy of TLcdLonLatParser.

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 considerationLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 Connectors

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4851
TLcyMapEditUnitAddOn: due to a regression, setting the precision of the altitude format was no longer possible. This has been fixed.

Bug fixLucy (LuciadLightspeed)

LUCY-4850
TLcyMapEditUnitAddOn: the config file contained the TLcyMapEditUnitAddOn.altitude_precision property which wasn't read. The correct property to use is TLcyMapEditUnitAddOn.default_altitude_precision. The configuration file has been updated to reflect this.

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4849
TLcyDebugAddOn the action to inspect a workspace threw a IOException when trying to use it.

Bug fixLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLucy (LuciadLightspeed)

LCD-10908
TLcyE57AddOn: the interpretation of the TLcyE57AddOn.maxNumberOfPointsPerPointCloud property in the config file has changed. Using a negative value will now result in the removal of the limit of the number of decoded points. In the past, using a negative value would result in using the default limit value.

Upgrade considerationLucy (LuciadLightspeed)

LCD-10908
TLcyLASAddOn: the interpretation of the TLcyLASAddOn.maxNumberOfPointsPerFile property in the config file has changed. Using a negative value will now result in the removal of the limit of the number of decoded points. In the past, using a negative value would result in using the default limit value.

2019.0.08

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixOGC Server

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

The API to create new on-map navigation controls has been simplified:
  • Constructors that know the default image path have been added to the following classes: TLcdGXYCompassNavigationControl, TLcdGXYZoomNavigationControl, TLspAltitudeExaggerationControl, TLspCompassNavigationControl, TLspPanNavigationControl and TLspZoomNavigationControl.
  • TLcdGXYNavigationControlsFactory now has a method (createNavigationControls) which allows you to combine a compass and zoom navigation control into a single component.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4845
TLcyCSVAddOn: the Import dialog shown when opening a CSV file in Lucy no longer showed a preview of the data on the preview map. This has been fixed.

Bug fixLuciadLightspeed

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

Bug fixLucy (LuciadLightspeed)

LUCY-4844
Fixed an issue in Lucy where the deploy_lucy deployment build script 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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

LUCY-4806
TLcyCSVAddOn: when opening a CSV file in Lucy and entering incorrect information in the Import dialog, Lucy no longer shows an Internal Error dialog. Instead, an error dialog stating that the file could not be opened is shown.

ImprovementLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixOGC Server

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

Bug fixOGC Server

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 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 considerationLuciadLightspeed

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

2019.0.03

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

LUCY-4843
Removed pre-defined URLs for Web Map Services (WMS) which are no longer present. Lucy users that have those URLs within their cached connections can remove such stale URLs via the WMS Client dialog which allows to manage collected connections.

ImprovementOGC Server

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.

ImprovementOGC Server

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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

Bug fixLuciadLightspeed

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 fixOGC Server

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 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 considerationLuciadLightspeed

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

2019.0.01

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

TLcdGXYSurfacePainter now supports creation of a surface, provided that it has an exterior ring and no inner rings.

Bug fixLuciadLightspeed

LCD-10730
TLspSelectController was no longer able to select objects with the rectangle selection feature.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10701
Improved rendering of SLD icons on HiDPI displays.

Bug fixLuciadLightspeed

TLcdIconFactory.LINK_DECO_ICON: made the 16x16 icon consistent with the other icon sizes.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10687
TLcdImageIcon: the icon would not be painted with the correct resolution when switching between a HiDPI and a non-HiDPI display.

Bug fixLuciadLightspeed

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

ImprovementLuciadLightspeed

The lightspeed.imageprojection sample has been modified to show a sample video draped onto the terrain instead of a single image icon.

ImprovementLucy (LuciadLightspeed)

ALcyDefaultModelDescriptorFactory: the getDisplayName method is no longer abstract. It now has a default implementation.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-3558
Improved the performance of adding and removing (many) layers to a view.

ImprovementLuciadLightspeed

ILcdPointList now implements all methods of ILcdPointList2. As such, there is no need to use the latter anymore.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

Visualizing Bing Maps data has been simplified:
  • The model decoder is now annotated with the LcdService annotation.
  • Introduction of TLcdBingMapsGXYLayerFactory and TLspBingMapsLayerFactory. Both classes are also annotated as LcdService
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

ImprovementLuciadLightspeed

You no longer have to create and set up a TLcdGXYAsynchronousPaintQueueManager to use asynchronous layer wrappers in an ILcdGXYView.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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());.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

TLcdDataModel A new annotation type (TLcdHiddenDataPropertyAnnotation) is available to annotate properties that need to be excluded from the user interface. Lucy now works with this annotation within:
  • the table view and its filter-functionality
  • the object properties window
  • the label-selector interface
Adding this annotation to certain properties is possible for custom models as well as for models with existing decoders.

ImprovementLucy (LuciadLightspeed)

Lucy: the UI to adjust the elevation data colors on a Lightspeed map now includes a button to revert to the default elevation coloring.

ImprovementLuciadLightspeed

LCD-10243
LAS and LAZ files which only contain black colors now will be treated as non-colored data.

ImprovementLuciadLightspeed

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 considerationLuciadLightspeed

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

  • use the methods in ALspViewXYZWorldTransformation to transform between UI coordinates and geographic coordinates;
  • contain custom implementations of ILspController.

Please refer to the javadoc of ALspViewXYZWorldTransformation for more information on toolkit coordinates and DPI scaling.

Upgrade considerationLucy (LuciadLightspeed)

Lucy no longer supports integration with the Eclipse SWT framework.

Upgrade considerationLuciadLightspeed

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 considerationLuciadLightspeed

LCD-10581
The return types of some of the methods of the following classes were narrowed from Enumeration to ILcdAutoCloseableEnumeration.
  • ILcdDatabaseDecoder
  • ILcdDatabaseDecoder2
  • TLcdDatabaseModel
  • TLcdDatabaseReadOnlyModel
The new return type allows clients to close enumerations so resources can be cleaned up.

Upgrade considerationLuciadLightspeed

TLcdIconFactory.DRAW_VARIABLE_BUFFER_ICON has been removed since it was duplicating the TLcdIconFactory.DRAW_VARIABLE_WIDTH_BUFFER_ICON.

Upgrade considerationLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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.

  • TLcdGeodeticPen
  • TLcdGridPen
  • TLcdProjectionPen
  • TLcdGXYPen

Accordingly, the type of the protected field ALcdGXYPen#fLastAWTPoint has been changed to TLcdXYPoint and the field has been renamed as fLastViewPoint.

Upgrade considerationLuciadLightspeed

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 considerationLucy (LuciadLightspeed)

Lucy no longer supports the legacy 3D view component. The legacy 3D view was already disabled in Lucy since the introduction of the Lightspeed view in LuciadLightspeed 2012.0. All public classes and add-ons that depended on the legacy 3D component were removed from the API.

This change removed the following packages and add-ons:
  • The com.luciad.lucy.format.opengl package.
  • The com.luciad.lucy.map.opengl package.
  • The TLcyAIXM51OpenGLAddOn class and related files.
  • The TLcyBingMapsOpenGLAddOn class and related files.
  • The TLcyCameraLinkAddOn class and related files.
  • The TLcyCameraTrackingAddOn class and related files.
  • The TLcyPOLOpenGLAddOn class and related files.
  • The TLcyDrawingOpenGLAddOn class and related files.
  • The TLcyEarthOpenGLAddOn class and related files.
  • The TLcyFusionRasterFormatOpenGLAddOn class and related files.
  • The TLcyGridOpenGLAddOn class and related files.
  • The TLcyGLMapAddOn class and related files.
  • The TLcyKML22OpenGLAddOn class and related files.
  • The TLcyMapOverviewOpenGLAddOn class and related files.
  • The TLcyGLPreviewAddOn class and related files.
  • The TLcyExtremePointOpenGLAddOn class and related files.
  • The TLcyToteOpenGLAddOn class and related files.
  • The TLcyViewPointAddOn class and related files.
  • The TLcyLspGLFallbackFormatAddOn class and related files.
  • The TLcyGridCoordinateOpenGLAddOn class and related files.
  • The TLcyG4JAddOn class and related files.
  • The TLcyMSSQLFormatOpenGLAddon class and related files.

Upgrade considerationLuciadLightspeed

All public classes that depended on the legacy 3D component were removed from the API.

Upgrade considerationLuciadLightspeed

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 considerationOGC Server

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

ImprovementLucy (LuciadLightspeed)

Lucy: the UI of the connection dialog to a WMS/WFS/WCS/WMTS/LTS service has been improved:

  • A loading icon is shown while the capabilities are being requested
  • An option to (de)select all available datasets is added

ImprovementLucy (LuciadLightspeed)

LUCY-4814
Lucy: the offset terrain setting when visualizing 3D meshes and point clouds can now be configured in the configuration files of the Lightspeed add-ons (TLcyLsp3DTilesB3DMFormatAddOn, TLcyLsp3DTilesPNTSFormatAddOn, TLcyLspPointCloudFormatAddOn and TLcyLspOSGBFormatAddOn).

Bug fixLuciadLightspeed

LCD-10628
ALcdTransformingModel: Fixed a memory leak that could occur when modifying elements in the original model.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10554
TLspLabelPainter: labels using a TLspTextStyle with an underline text attribute could, in some case, be painted as a label without underline.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10650
TLcdGXYLabelPainter and its extensions could paint labels of non-selected objects in the selection color.

Bug fixAviation Standards

The method to automatically sort time slices in decoded 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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-10611
It is now possible to customize the distance at which the pin of a label disappears. See TLspPinLineStyle.Builder#pinVisibiltyThreshold.

Bug fixLuciadLightspeed

LCD-10584
Using TLspFixedOnPathLabelLocationProvider for curves with a large length (around 1000km or longer) resulted in unstable labels.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixOGC Server

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

ImprovementLuciadLightspeed

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.

ImprovementTiling Engine

LF-1757
Added a new method to the TLfnPointCloudPreprocessor class which returns the list of data sources.

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4816
Added work-around for a bug that could cause glitches in the dimension filter overlay component in certain circumstances. This could happen, for example, when loading a Lucy workspace containing dimensional data.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 considerationLuciadLightspeed

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 fixLuciadLightspeed

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.

2018.1.11

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementTiling Engine

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.

Bug fixLuciadLightspeed

LCD-10579
TLcdWKTReferenceParser threw a NPE when trying to parse a COMPD_CS with an unsupported vertical data. It now throws a ParseException.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

TLcyDefaultDecodersAddOn: the add-on configuration file now has a flag called GMLFormat.modelDecoder.linearElementsUseGeodesicInterpolationForGeodeticSrs to control the interpolation of linear GML elements with a geodetic SRS. Although these GML elements conceptually represent geometries with a linear interpolation, they are often interpreted as having a geodesic interpolation. The default setting is to use geodesic interpolation, in accordance with most other vendors.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

LCD-10546
TLcdVVJPanel: fixed an accuracy problem when horizontally zooming in on a vertical view.

Bug fixLuciadLightspeed

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

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4810
Lucy printing: changing the TLcyPrintAddOn.pagePreview.previewScale property in the configuration file had no effect.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10519
Fixed an issue where for certain DTED data sets, under certain conditions, the visualization was not correct at tile borders.

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4809
Lucy: the UI to connect to a WFS/WMS/WCS/LTS server could throw NullPointerExceptions in certain circumstances. This has been fixed.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10510
TLspLonLatGridStyler: the setLabelLineOffset and setLabelEdgeOffsets methods didn't always have any effect.

Bug fixLuciadLightspeed

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.

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

ImprovementLuciadLightspeed

LCD-10459
Improved the default styling for E57 point clouds. The size of the icons used for the points is more reasonable now.

ImprovementLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4807
TLcySelectionEditorAddOn: the title of the object properties application pane would not update when the ILcyCustomizerPanel.NAME was updated.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10485
TLcdPrintPreview: added some missing translation strings. The possible translation keys are listed in the setStringTranslator method javadoc.

Bug fixLucy (LuciadLightspeed)

LUCY-4804
Lucy drawing: fixed a NullPointerException that occurred when submitting an empty altitude in the object properties panel. The old behavior of refusing empty values has been restored.

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4802
Lucy drawing: Fixed StackOverflowError that occurred when using a very large number as input in the bearing column in the object properties panel.

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

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

Lucy drawing constructive geometry: Added support for Rhumb polylines and polygons.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4800
Fixed an issue in Lucy's hyperlink widgets that caused them to become invisible. This affected the time labels in the Lucy Map Centric front-end previewer UI.

Bug fixLucy (LuciadLightspeed)

LUCY-4799
Lucy drawing: the enabled state of the buttons to change the fill color or line color was not always in sync with the selection on the map.

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

ImprovementLuciadLightspeed

TLcdEllipsoidRhumblineUtil: The #polygonContains2D, #intersectsGeodesicRhumbline and #intersectionGeodesicRhumblineSFCT methods now do the necessary calculations on the ellipsoid passed as a parameter instead of on a sphere.

ImprovementOGC Server

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 fixLuciadLightspeed

LCD-10447
Source names of supporting files extracted from iso 19115 metadata files are now url decoded before being returned by TLcdModelMetadata#discoverSupportingSources

Bug fixLuciadLightspeed

LCD-10445
TLcdGeoJsonFeature#applyDataType would incorrectly resolve null values to empty HashMap instances.

Bug fixLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementOGC Server

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.

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 fixLuciadLightspeed

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 combintation with a ILcdGXYPen created with the ALcdGXYPen.Quality.FASTEST enum value.

Bug fixLuciadLightspeed

LCD-10378
Fixed issue with TLspFixedInPathLabelLocationProvider, where an incorrect locations was provided for composite curves.

Bug fixOGC Server

The output format encoding in the DescribeFeatureType requests in XML Schema location URLs could contain an unexpected + character.

2018.1.02

ImprovementLuciadLightspeed

LCD-10414
TLcdServiceLoader: improved compatibility with certain OSGi implementations.

ImprovementLucy (LuciadLightspeed)

LUCY-4797
Lucy drawing layer creation: cancelling or closing the model reference chooser dialog without choosing a reference will no longer blank out the model reference field.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10379
OGC 3D Tiles decoders can now handle query parameters in the contents' URL.

Bug fixLuciadLightspeed

LCD-10405
Fixed an issue where E57 files declaring extension namespaces could not be decoded.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10406
Fixed a regression related to the decoding of SLD ParameterValue elements, introduced by enhancement LCD-10387.

Bug fixOGC Server

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 fixOGC Server

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

ImprovementLuciadLightspeed

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[ ]]>

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-10337, LCD-10423
TLcdWKTReferenceParser now support WKT strings for the EPSG:3857 reference that were formatted using the gdal library.

ImprovementLuciadLightspeed

LCD-10275
Added caching for HTTP(S)-based XML Schema locations when evaluating an OGC Filter on an XML dataset.

Bug fixLuciadLightspeed

LCD-10374
TLcdOGC3DTilesModelDecoder : Fixed a problem when handling gltf nodes identifiers that are Integers.

Bug fixLuciadLightspeed

LCD-10312
Fixed issue that would cause a ConcurrentModificationException when toggling tableview visibility with multiple editable domain objects selected.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10358
Fixed bug where TLcdWMMMagneticNorthMap#setDate would throw an exception for invalid dates, even when isIgnoreModelLifeSpan is true.

Bug fixLuciadLightspeed

LCD-10321
Fixed memory leak in TLspShapePainter that could be triggered when using a styler that does not reuse ILcdIcon implementations.

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4784
Lucy: the dialog to edit the settings of the current map projection interpreted the rotation value as radians, while the UI specified that the value is in degrees. The value is now correctly interpreted as degrees.

Bug fixLucy (LuciadLightspeed)

LUCY-4785
Lucy: long entries in the "Connect to..." dialog would result in an empty line, instead of just showing the start of the entry. This has been fixed.

Bug fixLucy (LuciadLightspeed)

LUCY-4787
Lucy: shift-selection and alt-selection did not work on a Lightspeed map.

Bug fixLucy (LuciadLightspeed)

LUCY-4782
Lucy: when restoring a workspace, the icon of the table view application pane could be incorrect.

Bug fixLucy (LuciadLightspeed)

LUCY-4786
TLcyGotoAreaOfInterestAddOn incorrectly read the the predefined map scales from the configuration files. This has been fixed.

Bug fixLuciadLightspeed

LCD-10299
The automated conversion of OGC filter to SQL inside database models did not support database properties of type java.sql.Timestamp.

Bug fixOGC Server

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

ImprovementLuciadLightspeed

TLcdSystemPropertiesUtil: new utility methods have been added to check whether Java 10 or Java 11 is used.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-10281
TLcdWKTReferenceParser now also supports WKT strings that use Mercator_Auxiliary_Sphere as projection parameter

ImprovementLuciadLightspeed

LCD-10285
TLcdWKTReferenceParser now also supports WKT strings that use Dutch_Stereographic as projection parameter

ImprovementLucy (LuciadLightspeed)

LUCY-4628
Lucy can now open a Fusion coverage directly from disk, without the need to connect to the tilestore first.

ImprovementLucy (LuciadLightspeed)

LUCY-4711
Lucy Showcase sample: the theme chooser UI no longer stores the full-sized theme preview images in memory. Since the UI only shows thumbnails, it is sufficient to store those thumbnails.

ImprovementLuciadLightspeed

LCD-10206
TLspParameterizedLineStyle can now be configured with a dash pattern via its builder.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

Lucy can now decode and visualize E57 data on a Lightspeed view. This functionality is provided by TLcyE57AddOn and TLcyLspE57FormatAddOn.

ImprovementLucy (LuciadLightspeed)

LUCY-4567
Lucy: when connecting to a WMS server and visualizing a single WMS layer, the layer added to the map by Lucy will have the WMS layer title as label. This results in a more meaningful label in the layer control for WMS layers.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-9910
Improved asynchronous painting performance in ILcdGXYView instances with many invisible layers.

ImprovementLucy (LuciadLightspeed)

Partial support for the military standard APP-6D has been added to the TLcyAPP6AAddOn. Note that this standard is now the default, which may cause errors or warnings when loading workspaces containing data from older standards. If you prefer the previously used symbologies, refer to the respective config files of these add-ons to revert this change.

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

ImprovementLucy (LuciadLightspeed)

Support for the military standard MIL-STD-2525D has been added to the TLcyMS2525bAddOn. Note that this standard is now the default, which may cause errors or warnings when loading workspaces containing data from older standards. If you prefer the previously used symbologies, refer to the respective config files of these add-ons to revert this change.

ImprovementLuciadLightspeed

LCD-7843
TLcdOGCModelReferenceParser: the decoder can now parse model references in the form of URLs.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

LUCY-4491, LUCY-3256
Lucy: the UI for connecting to WMS, WCS, WFS, WMTS and LuciadFusion servers is now consistent between all services. The UI also has been improved:
  • A search field has been added
  • The bounds of the dataset are now previewed on a map

ImprovementLucy (LuciadLightspeed)

It is now possible to connect to WxS servers in Lucy programmatically:
  • Support for TLcdWCSDataSource and TLcdWFSDataSource has been added.
  • Support for decoding a String which contains both the server name and the requested dataset has been added.
Consult the Lucy developer guide for more information and example code snippets.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-2075
TLcdLayerTree now by default hides its root node. If you don't want this, call TLcdLayerTree#setRootVisible(true).

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

TLcdGXYLabelPainter, TLcdGXYPolygonLabelPainter, and TLcdGXYPolylineLabelPainter now support HTML labels. In addition, minor layout issues were resolved in TLcdGXYLabelPainter.

ImprovementLuciadLightspeed

LCD-9223
TLcdTextIcon is a new multi-line text icon implementation. TLcdBoxIcon draws an outlined and/or filled box around another icon.

ImprovementLuciadLightspeed

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 Connectors

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.

ImprovementTiling Engine

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.

Bug fixLucy (LuciadLightspeed)

LCD-10292
TLcyDrawingAddOn: fixed an issue that caused an exception when performing copy-paste actions on shapes in a Lightspeed view, followed by undo operations.

Bug fixLuciadLightspeed

LCD-10277
Fixed an issue when displaying lines with 3D information from LuciadFusion vector coverages. In some cases, their Z information got lost.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10168
TLcdOGC3DTilesModelDecoder now correctly decodes normals. This especially improves the rendering of meshes without textures when lighting is enabled.

Bug fixLuciadLightspeed

LCD-10091
XML framework: fixed a ClassCastException when working with an XML list type of xsd:integer or xsd:long values.

Bug fixLuciadLightspeed

LCD-9111
Fixed bug that would make OpenFlight models have incorrect bounding boxes, because transformations were not taken into account.

Bug fixLuciadLightspeed

LCD-9927
The model metadata of OpenFlight models decoded by TLcdOpenFlightModelDecoder will now also include the bounding box.

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

Bug fixTiling Engine

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.

Upgrade considerationLuciadLightspeed

Added a dependency to the LWJGL library version 3.2.0, used to retrieve window handles.

Upgrade considerationLuciadLightspeed

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 considerationLuciadLightspeed

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 considerationLucy (LuciadLightspeed)

The JIDE third party library, which is used by the Lucy docking front-end, has been upgraded to version 3.7.4. This upgrade fixes a ClassNotFoundException on MacOS when using Java 11, which blocked Lucy from running.

Upgrade considerationLuciadLightspeed

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

ImprovementLuciadLightspeed

LCD-10242
Improved interoperability with WMS servers that define WMS extensions through the XML Schema attribute 'noNamespaceSchemaLocation'.

ImprovementOGC Server

LCD-10187
The WFS server is now flexible against the casing used in the output format parameter in GetFeature requests.

Bug fixLuciadLightspeed

LCD-10267
The TLcdRasterImageBuilder now handles the case of an ILcdRaster with a large tile size.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10260
TLcdCSWDecoder now properly decodes OWS 1.0 exception reports.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10161
Fixed an issue where point-to-point snapping could behave erratically for domain objects that do not implement ILcdPoint.

Bug fixLucy (LuciadLightspeed)

LUCY-4778
Fixed an issue in the visibility module of the Terrain Analysis add-on of Lucy. The "sky distance" field was not properly taken into account, resulting in incorrect results.

Bug fixLucy (LuciadLightspeed)

LUCY-4776
Lucy: changing the TLcyWorkspaceAddon.savePreviewImage setting in the configuration file of the workspace add-on had no effect. The preview image would always been saved, independent of that setting.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10188
The SLD Lightspeed raster rendering pipeline did not support the use of a geometry property name in raster symbolizers.

Bug fixOGC Server

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 fixOGC Server

LCD-10179
Fixed the handling of negative GridOffsets X / Y / Z resolution values in WCS 1.1 GetCoverage requests.

Upgrade considerationLuciadLightspeed

TLcdClusteringTransformer#createScaleDependent has been deprecated. To create a scale based cluster transformer TLcdClusteringTransformer#createMapScaleDependent should be used instead.

2018.0.11

ImprovementLuciadLightspeed

LCD-9732
The WFS client samples now enable support for the GeoJSON exchange format, next to GML 2 / 3.1 / 3.2.

ImprovementLucy (LuciadLightspeed)

LUCY-4150
Lucy drawing: the object properties panel for polylines and polygons now allows to remove multiple points in one go.

ImprovementLuciadLightspeed

LCD-10181, LCD-10210
TLcdBingMapsModelDecoder now uses HTTPS for its imagery and tile requests.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LUCY-4772
Lucy print preview: triggering the Print Preview action from a pop-up could result in a NullPointerException when closing the Print Preview window.

Bug fixLucy (LuciadLightspeed)

LUCY-4773
Lucy printing: pressing the pan buttons in the Print Preview dialog had no immediate effect on the view when printing a 2D Lightspeed view. Only when making another change (for example a zoom), the previous panning of the map was correctly previewed.

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

ImprovementLuciadLightspeed

LCD-10196
TLcdImageModelMeasureProviderFactory now creates providers that track model changes.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-9716
TLspShapeLayerBuilder: An OutOfMemoryException could occur in some cases when visualizing dynamic data in layers build with TLspShapeLayerBuilder.

Bug fixLuciadLightspeed

LCD-10180
Fixed an issue where a ConcurrentModificationException was triggered in some rare cases.

Bug fixLuciadLightspeed

LCD-10175
Fixed issue where creating a point near the start and endpoint of a pointlist would not work.

Bug fixLuciadLightspeed

LCD-10146
Fixed bug that could cause the TLspContext of an ALspLayer to (incorrectly) return a null pointer when calling #getModel.

Bug fixLuciadLightspeed

LCD-10154
The vertical label displacement property in SLD styles was incorrectly interpreted downwards instead of upwards in a GXY view.

Bug fixLuciadLightspeed

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 fixOGC Server

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

ImprovementLucy (LuciadLightspeed)

Lucy now supports InlandECDIS (IENC) with the existing TLcyS57DecoderAddOn.

You can configure your ship's beam and air draft with the S-52 display settings customizer UI. These settings affect the visualization of the safety of fixed bridges.

For details, see the release note in the Maritime Standards component.

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10141
Fixed a quadratic complexity problem in TLcdGXYContinuousLabelingAlgorithm that could cause performance problems when working with 100s/1000s of labels.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10031
Fixed an issue where tilting or zooming past a certain threshold caused a flicker for draped raster layers in 3D views.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementTiling Engine

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.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixOGC Server

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 fixOGC Server

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 fixOGC Server

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

ImprovementLuciadLightspeed

LCD-10077
TLcdSVGIcon now supports icons that have no width or size but do have a view box.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

LCD-10072
Removed the enforcing of accessor.byteOffset as per the GLTF 2.0 spec.

Bug fixLuciadLightspeed

Resolved a constructor issue in TLcdCGMModelDescriptor.

Bug fixLuciadLightspeed

LCD-9952
The GeoTIFF decoder now can handle case of missing ProjectedCSTypeGeoKey within the GeoTIFF tags by handling it as user defined.

Bug fixLuciadLightspeed

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 fixLucy (LuciadLightspeed)

LCD-9563
While loading the ARINC data, "Open ARINC File" popup window is opened to configure the decoder. If you select the "Select all" checkbox, even though the "Procedure" checkbox is selected, "Procedure airport filter" is disabled. This issue is fixed.

Bug fixAviation Standards

LCD-6993
Fixed the handling of sunrise and sunset times in 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 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 considerationLuciadLightspeed

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 considerationLuciadLightspeed

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

ImprovementLuciadLightspeed

LCD-10013
TLcdWKTReferenceFormatter now better detects if a geodetic datum uses a vertical reference.

ImprovementLuciadLightspeed

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

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-9283
TLcdSHPModelEncoder: The DBF file writer now logs warning messages when field names are truncated because of the limiting dBASE IV format.

ImprovementLuciadLightspeed

LCD-9931, LCD-9883, LCD-9281
Improved error messages when TLcdSHPModelDecoder2 encounters corrupted SHX, SBN or SBX files.

ImprovementLuciadLightspeed

LCD-10000
TLcdInputStreamFactory now supports relative paths in HTTP/HTTPS URL's.

ImprovementLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10013
TLcdWKTReferenceParser added incorrect authority and axis metadata to compound WKT references.

Bug fixLuciadLightspeed

LCD-10040
Considerably improved snapping performance in Lightspeed views for large complex polygons.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10024
Fixed a where hidden entrypoint files were taken into account instead of the non-hidden corresponding files.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-10004
LuciadLightspeed now supports OGC 3D Tiles URL containing query parameters and correctly uses those for all subsequent requests.

Bug fixLuciadLightspeed

LCD-9934
Fixed bug in TLcdSHPModelDecoder that would leak the .dbf file descriptor when a shape file's header could not be read.

Bug fixLuciadLightspeed

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 fixLuciadLightspeed

LCD-9954
Added support for content.uri in tilesets. This is now used by default instead of content.url

Bug fixLuciadLightspeed

LCD-9935
Fixed a precision problem occurring with 3DTiles' not axis-aligned Bounding Boxes.

Bug fixLuciadLightspeed

LCD-9402
The OBJ model decoder now correctly handles referenced texture files that contain spaces in their path.

Bug fixLuciadLightspeed

LCD-7888
The geojson model decoder now simply ignores features with a null geometry, instead of throwing an exception.

Bug fixLuciadLightspeed

LCD-9770
Different geojson features with the exact same geometry are no longer considered 'equal' by their equals method.

Bug fixOGC Server

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

ImprovementLucy (LuciadLightspeed)

LUCY-4682
TLcyNetworkConnectionAddOn: it is now possible to provide hardcoded credentials by overriding the getPasswordAuthentication method.

ImprovementLucy (LuciadLightspeed)

The LIDAR theme in the Lucy Showcase sample has been replaced by a new theme which shows the ability to connect to 3D riality meshes and point clouds.

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

The new TLcyPointCloudAddOn and TLcyLspPointCloudFormatAddOn add support for loading and visualizing Luciad Point Cloud (tilestore.lpc) data sets.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-6481
TLcdLASModelDecoder#setPerformBoundsAndRangeScan now allows skipping the (limited) data scan during decoding.

ImprovementLucy (LuciadLightspeed)

The new TLcyLspRadarVideoStyleCustomizerAddOn add-on adds support for editing the properties of a TLspRadarVideoStyle through the layer properties panel.

ImprovementLucy (LuciadLightspeed)

TLcyASTERIXDecoderAddOn and TLcyLspASTERIXFormatAddOn now support the visualization of ASTERIX data coming from a live data stream. This includes support for category 240 data (radar streams). Consult the class javadoc of the TLcyASTERIXDecoderAddOn for more information.

ImprovementLuciadLightspeed

LCD-9603
TLcdCSVModelDecoder now supports newline characters in quoted content.

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

LUCY-4661
Lucy MapCentric: the layer properties panel is now shown in a non-modal dialog. This allows you to interact with the map, the table view, ... while the layer properties are shown. The configuration file of the layer control allows to configure the modality (see the TLcyLspMapAddOn.LspMapLayerControl.layerPropertiesAction.useModalDialog property).

ImprovementLuciadLightspeed

TLcdModelReferenceFactory and TLcdModelReferenceEncoder now support the encoding of TLcdTopocentricReference instances.

ImprovementLuciadLightspeed

TLcdPointCloudModelDecoder: this new class decodes point clouds in the Luciad point cloud file format (tilestore.lpc files).

ImprovementLuciadLightspeed

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

ImprovementLucy (LuciadLightspeed)

The unstyled Lightspeed vector formats (like SHP, GML, GeoPackage, ...) now allow to define styling based on a property of the data through the Lucy UI. An example of this is adjusting the fill color of a country based on the population of that country.

The customizer panel factories for this UI are registered by the TLcyLspLayerCustomizerAddOn. The factories can also be created using the new methods on the TLcyLspStyleCustomizerPanelFactories class.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLucy (LuciadLightspeed)

LUCY-4708

The ILcdOWSTransport used by the OGC services (WMS, WCS, WFS, WMTS) is now retrieved from the Lucy back-end. Customizing the transport is as easy as registering your own instance as service on the Lucy back-end. This allows for example to provide hardcoded credentials for a specific server.

TLcyCompositeOWSTransport can be used as composite transport implementation.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-9430
ILcdFeatured and related interfaces have been deprecated in favor of ILcdDataObject and TLcdDataModel.

ImprovementLucy (LuciadLightspeed)

The new TLcyOGC3DTilesAddOn adds support to decode OGC 3D tile data sets. The TLcyLsp3DTilesB3DMFormatAddOn adds visualization support on Lightspeed views for such data sets with B3DM data as payload (riality meshes). The TLcyLsp3DTilesPNTSFormatAddOn does the same for data sets with PNTS data as payloads (point clouds). There is no support to visualize these data sets on a GXY view.

ImprovementLucy (LuciadLightspeed)

The new TLcyOSGBAddOn and TLcyLspOSGBFormatAddOn add support for loading and visualizing binary OpenSceneGraph (OSGB) data sets on a Lightspeed view.

ImprovementLuciadLightspeed

LCD-8520
Modulo and integer to float conversion operations are added to the TLcdExpressionFactory.

ImprovementLuciadLightspeed

LCD-7761
The TLcdCSVModelDecoder can be used to decode CSV files.

ImprovementLucy (LuciadLightspeed)

LUCY-4703
The TLcyCSVAddOn and TLcyLspCSVFormatAddOn add support for loading and visualizing CSV data.

ImprovementLuciadLightspeed

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());.

ImprovementLucy (LuciadLightspeed)

Lucy will now first try to save a model reference as a .prj file instead of directly saving it as a Luciad-specific .ref file.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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 .

ImprovementLuciadLightspeed

LuciadLightspeed now comes with several JavaFX integration samples, which can be found in the package samples/lightspeed/integration/javafx.

ImprovementLuciadLightspeed

The Natural Earth sample data (see Shp/NaturalEarth) has been updated to version 4.1.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

LCD-9611
TLcdOGCModelReferenceFormatter now also implements ILcdXYWorldReferenceFormatter.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

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.

ImprovementLuciadLightspeed

ILcdModelContainer now has a new default method getModels that exposes the models as a List.

ImprovementLucy (LuciadLightspeed)

LUCY-4686
The "not in" filter was added to the table view filters, as the negation of the "in" filter.

ImprovementLucy (LuciadLightspeed)

LUCY-4665
The "Connect to..." menu now includes the ability to tag data sources as favorites for an easier access.

ImprovementLuciadLightspeed

LCD-9413
TLcdOGCModelReferenceParser now also implements ILcdXYWorldReferenceParser.

ImprovementLuciadLightspeed

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

TLcdASTERIXLiveModelDecoder: this new class is an ILcdModelDecoder implementation which allows to decode live ASTERIX data.

Bug fixLuciadLightspeed

Changed TLcdSpatiaLiteModelDescriptor.TYPE_NAME to correspond with the actual type name in the model descriptor instances.

Bug fixLuciadLightspeed

TLcdEditableModelListDescriptor's constructor taking a type name and display name switched the arguments around.

Bug fixLuciadLightspeed

Improved trackpad/magic mouse zooming on macOS in GXY and Lightspeed views.

Bug fixLuciadLightspeed

LCD-9434
Fixed a JRE related performance problem that occurs when using JRE 1.8 update 131 and newer on macOS. It caused low framerates when moving or dragging the mouse.

Bug fixDatabase Connectors

Changed TLcdOracleSpatialModelDescriptor.TYPE_NAME to correspond with the actual type name in the model descriptor instances.

Bug fixDatabase Connectors

Changed TLcdInformixSpatialModelDescriptor.TYPE_NAME to correspond with the actual type name in the model descriptor instances.

Bug fixDatabase Connectors

Changed TLcdDB2SpatialModelDescriptor.TYPE_NAME to correspond with the actual type name in the model descriptor instances.

Bug fixDatabase Connectors

Changed TLcdPostGISModelDescriptor.TYPE_NAME to correspond with the actual type name in the model descriptor instances.

Bug fixDatabase Connectors

Changed TLcdInformixGeodeticModelDescriptor.TYPE_NAME to correspond with the actual type name in the model descriptor instances.

Bug fixReal-time Engine

LCD-9487
TLspRadarVideoLayerBuilder: a radar layer was only repainted in response to a model change event or a view change. That could result in an unsmooth fade-out of the blips. Now the radar will repaint itself automatically, resulting in a smooth fade-out of the blips.

Upgrade considerationLuciadLightspeed

Added a dependency on the third party library HPCC Collections for efficient HashMap implementation which is used in PointCloud tile voxelization.

Upgrade considerationLuciadLightspeed

The heuristic used by the Lightspeed view to determine the size of its OpenGL resource cache has been modified to result in somewhat bigger cache sizes. This reduces the risk of performance issues when loading large amounts of data in the view. This change does not affect applications that explicitly specify the cache size using TLspViewBuilder#glResourceCacheSize. Note that the cache size can also still be specified by setting the system property com.luciad.view.lightspeed.opengl.cacheSize to a value in megabytes, e.g. -Dcom.luciad.view.lightspeed.opengl.cacheSize=768.

Upgrade considerationLuciadLightspeed

Due to the introduction of enhancement LCD-4316, the ILcdModelReferenceDecoder and ILcdModelReferenceEncoder instances in a deployed application should no longer be obfuscated. The Proguard configuration file in the release has been adjusted for this. If you use your own Proguard configuration, make sure to update it as well.

Upgrade considerationLuciadLightspeed

TLcdGeoJsonModelDecoder now ensures that the uid property value of decoded Geojson features is always of type String, as described by the associated data model. Implementations that expected an Integer type in case of a numeric value in the input data should adapt accordingly.

Upgrade considerationLuciadLightspeed

ILcdOWSTransport a default canPerformRequest method has been added to the interface, allowing users of the transport to first check whether the request can be performed.

Upgrade considerationLuciadLightspeed

TLspPlotStyle: The alpha value of the modulation color configured on the style is now also taken into account, previously it was ignored. The transparency of the icon is now determined by multiplying the alpha value of the modulation color and the opacity configured on the style. If in your code you use a modulation color which is transparent on your style e.g. TLspPlotStyle.newBuilder().modulationColor(new Color(255,0,0,128)).build(), then you will need to change this to TLspPlotStyle.newBuilder().modulationColor(new Color(255,0,0,255)).build() if the icon needs to remain fully opaque.

Upgrade considerationLucy (LuciadLightspeed)

ALcyProperties.keys() now returns an Iterator<String> instead of a plain Iterator.

Upgrade considerationLuciadLightspeed

TLcdInputStreamFactory now by default requests compressed content over HTTP, using the "Accept-Encoding" header, for performance. When serving compressed data is not available on the server, it automatically falls back on raw data, unless specified differently. This can be disabled using:
  • The boolean system property com.luciad.io.TLcdInputStreamFactory.acceptHttpCompressedEncoding
  • The method TLcdInputStreamFactory#setAcceptCompressedEncoding
  • The setDefaultRequestProperty("Accept-Encoding", null) method on a specific factory instance
There is no change on the user side, as the TLcdInputStreamFactory automatically unzips the content.

Upgrade considerationLuciadLightspeed

LCD-9343
ALspDensityStyle: the deprecated protected constructors from ALspDensityStyle and its subclasses have been removed.

Upgrade considerationLuciadLightspeed

Removed the protected fNextNumber and fScaleOrigin fields from the GXY view map implementations (for example, TLcdMapJPanel). If you used fNextNumber, you should manage the map count yourself in your map extension class. If you used fScaleOrigin, you can replace it with 450 / (2 * Math.PI * TLcdConstant.EARTH_RADIUS).

Upgrade considerationLuciadLightspeed

TLcd3DPrimitiveType: this class represents an enumeration, but still had a public constructor. This constructor has been removed as nobody should create new instances of this class.

Upgrade considerationLuciadLightspeed

TLcdModelDescriptor's protected fields have been removed from the API. You can replace any uses with calls to the respective setter and getter methods.

Upgrade considerationLuciadLightspeed

Removed the isBackgroundImageCapable methods from the GXY view map implementations (for example, TLcdMapJPanel). You can safely replace any invocation with false.

Upgrade considerationLuciadLightspeed

LCD-9577
TLcdGXYLayer's default interact margin has been increased to 32 pixels. It ensures that a model element is still painted if its visual representation falls inside the view, but its model bounds do not. If you notice a performance impact, you can change the value back by calling layer.setInteractMargin(5).

Upgrade considerationAdvanced Raster Connectors

The ECW decoder now supports the ECW version 3 file format.

The native libraries used by the decoder have been updated to version 5.4 of the ERDAS ECW JPEG2000 Software Development Kit (SDK) for this purpose. The support for linux 32-bit binaries has been removed in this version.

Upgrade considerationOGC Server

The CSW server component is now included in the OGC server component.

Upgrade considerationDefense Standards

LCD-9361
TLcdVPFModelDescriptor#getVFPFeatureClass has been removed, this method duplicated TLcdVPFModelDescriptor#getVPFFeatureClass which should be used instead.

Upgrade considerationDefense Symbology

LCD-9751
Removed painting behaviour where Axis of advance arrows with only two points were painted differently than Axis of advance symbols with 2+ points. This is old behaviour that was kept for backwards compatibility reasons. From now on the Axis of advance symbols will always be painted as specified in MIL-STD-2525 b/c, APP6-a/b/c. The following style methods are no longer used and have been deprecated:
  • ILcdMS2525bStyle#setArrowCurvedness
  • ILcdMS2525bStyle#getArrowCurvedness
  • ILcdAPP6AStyle#setArrowCurvedness
  • ILcdAPP6AStyle#getArrowCurvedness

Upgrade considerationRadar Connectors

TLcdASTERIXDataSource: this class is now final. This class was never designed to be extended, and to make that clear the class has been made final.