2022.1.05
ImprovementLuciadFusion
LCD-12794
ILcdSLDOnlineResourceResolver
can be implemented and configured on a TLcdSLDContext
.
The interface allows to resolve TLcdSLDOnlineResource
instances, which are used to represent
the location of external graphics in an SLD file.
ImprovementLuciadFusion
LF-2346
full
elementSetName
to get related resources in the returned records of a CSW query.
ImprovementAviation Standards
LCD-12653

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


ImprovementDefense Symbology
LCD-11202
TLcdDefaultAPP6AStyle
, where it used to be painted in the affiliation color.


ImprovementInfrastructure Standards
LCD-12528
Bug fixLuciadFusion
LF-2276
Bug fixLuciadFusion
LCD-11874
TLspXYGridLayerBuilder
with TLcdCartesianReference
as reference.
Bug fixLuciadFusion
LCD-12805
Bug fixLuciadFusion
LCD-12806
Bug fixLuciadFusion
LCD-12799
TLcdGML32ArcByCenterPoint
no longer returns incorrect bounds when using grid references.
Bug fixAviation Standards
LCD-12807
TLcdAIXMProcedureHandler
will skip procedure legs with type OTHER
instead of throwing an exception.
Bug fixDefense Symbology
LCD-12784

Bug fixDefense Symbology
LCD-12781
ILinSymbologyStyle.setLabelPosition(int aPosition)
Bug fixDefense Symbology
LCD-12780

Bug fixDefense Symbology
LCD-12616
Upgrade considerationLuciadFusion
LF-2276
2022.1
2022.1.04
ImprovementLuciadFusion
TLcdOGCBinaryLogicOperator
now has a constructor with a varargs parameter for conditions.
ImprovementLuciadFusion
LCD-12228
ImprovementAviation Standards
LCD-12795
Bug fixLuciadFusion
LCD-12796
TLcdGeoJsonModelEncoder
now correctly encodes data objects with list properties which in turn
also contain data objects. Before this fix, the type names of those list elements would not be included in the
resulting JSON.
Bug fixLuciadFusion
LF-2347
TLcdE57ModelDecoder
now supports E57 data containing more points than
Integer.MAX_VALUE
, regardless of the number of points to be read set with the
TLcdE57ModelDecoder#setMaxNumberOfPoints
method.
Bug fixLuciadFusion
LF-2347
TLcdLASModelDecoder
no longer throws an IOException
if the data
contains more points than Integer.MAX_VALUE
, regardless of the number of points to be read
set with the TLcdLASModelDecoder#setMaxNumberOfPoints
method.
Bug fixLuciadFusion
LF-2347
TLfnPointCloudPreprocessor
now supports point cloud data containing more points
than Integer.MAX_VALUE
.
Bug fixLuciadFusion
LCD-12770
TLspParameterizedIconStyle
: fixed a memory leak that could occur when using an
ILcdParameter
in one of the expressions on the style.
Bug fixLuciadFusion
LCD-12786
TLcdSLDFeatureTypeStylePainter#getCreationClickCount
was not correct
in case of a model with multiple geometry types and a layer with SLD styling rules that filter on the geometry type.
This could lead to incorrect object creation behavior, which relies on this method to know how many points are needed.
Bug fixLuciadFusion
LCD-12785
TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME
,
used to identify the type of a geometry value, could not handle GML polygons.
2022.1.03
ImprovementLuciadFusion
LF-2077
filePath
property to the URL when using the POST /api/data
or POST /api/styles
REST API endpoint.
The data or style should be accessible to LuciadFusion without requiring authentication.
Only data formats for which LuciadFusion has a model decoder that implement the ILcdInputStreamFactoryCapable
interface are supported.
ImprovementInfrastructure Standards
LCD-12690
ImprovementInfrastructure Standards
LCD-12605
TLcd3DTilesProcessorBuilder
: Now produces textures at multiples of four for data sources
coming from reality capture data. This improves the ability for clients to compress the textures on the GPU.
ImprovementInfrastructure Standards
LCD-12385
TLcdIFCModelDecoder
now supports IfcFacetedBrepWithVoids
.
ImprovementInfrastructure Standards
LCD-12776
Bug fixLuciadFusion
LCD-12772
TLcdGeodetic
to a geodetic reference, bounds that extend over the date line
were transformed into bounds that don't include the date line.
Bug fixLuciadFusion
LCD-12773
TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME
,
used to identify the type of a geometry value, could not handle GML geometry properties.
Bug fixDefense Symbology
LCD-12754
Bug fixInfrastructure Standards
LCD-12750
2022.1.02
ImprovementLuciadFusion
LF-2328
==
and case-insensitive text match
using =ic=
RSQL comparison operators on enum properties.
This change applies to the REST API GET api/data/filter
endpoint.
Bug fixLuciadFusion
LCD-12431
TLcdEPSGReferenceParser
would throw a RuntimeException
instead of a ParseException
when decoding a reference that makes use of the resources in that jar.
Bug fixLuciadFusion
LCD-12745
SQL logic error (near "-": syntax error)
when opening certain GeoPackage files.
2022.1.01
ImprovementLuciadFusion
LF-2329
GET /api/data/custom-properties
endpoint allows users to request all the queryable and
non-queryable custom properties.
ImprovementLuciadFusion
LF-2323, LF-2324
LuciadFusion now publishes events when searching for TLfnProduct
or
TLfnService
resources: see TLfnProductQueryEvent
and
TLfnServiceQueryEvent
respectively.
For a complete overview of available events, refer to the Listening for LuciadFusion events article.
ImprovementLuciadFusion
LCD-8587
TLcdEllipsoidUtil#geodesicDistance3D
TLcdEllipsoidRhumblineUtil#rhumblineDistance3D
TLcdSphereUtil#greatCircleDistance3D
TLcdSphereRhumblineUtil#rhumblineDistance3D
ImprovementLuciadFusion
LF-1610
ImprovementLuciadFusion
LCD-12719
ImprovementLuciadFusion
LCD-12672
ImprovementDatabase Connectors
LCD-12730
ILcdShape
objects that provide access to the M coordinate:
POINT
:TLcdLonLatMPoint
,TLcdXYMPoint
,TLcdLonLatHeightMPoint
orTLcdXYZMPoint
LINESTRING
:TLcdLonLatMPolyline
,TLcdXYMPolyline
,TLcdLonLatHeightMPolyline
orTLcdXYZMPolyline
POLYGON
:TLcdLonLatMPolygon
,TLcdXYMPolygon
,TLcdLonLatHeightMPolygon
orTLcdXYZMPolygon
MULTIPOINT
:ILcdShapeList
containingTLcdLonLatMPolypoint
,TLcdXYMPolypoint
,TLcdLonLatHeightMPolypoint
orTLcdXYZMPolypoint
objectsMULTILINESTRING
:ILcdShapeList
containingTLcdLonLatMPolyline
,TLcdXYMPolyline
,TLcdLonLatHeightMPolyline
orTLcdXYZMPolyline
objectsMULTIPOLYGON
:ILcdShapeList
containingTLcdLonLatMPolygon
,TLcdXYMPolygon
,TLcdLonLatHeightMPolygon
orTLcdXYZMPolyline
objects
Bug fixLuciadFusion
LF-2322
Bug fixLuciadFusion
LCD-12741
TLspContinuousLabelingAlgorithm
.
Bug fixLuciadFusion
LCD-12721
TLcdE57ModelDecoder
no longer throws an IOException
for files
that contain more than Integer.MAX_VALUE
points, provided that
setMaxNumberOfPoints()
is first called to set a lower point count.
Bug fixLuciadFusion
LCD-12724
LCD-12679
was not complete.
The WMS capabilities now advertise the SLD operations in the correct XML namespace.
Bug fixInfrastructure Standards
LCD-12688
TLcdIFCModelDecoder
now supports unit conversions with IfcReal
or IfcInteger
factors
instead of throwing a NullPointerException
.
Bug fixMaritime Standards
LCD-12740
Bug fixMaritime Standards
LCD-12532
2022.1
New featureLuciadFusion
TLfnAccessEventPublisher
has been added which allows a developer to publish
a TLfnProductAccessEvent
or a TLfnServiceAccessEvent
in a custom
LuciadFusion service.
New featureLuciadFusion
LuciadFusion now publishes events using the Spring framework's event mechanism. These events are triggered when certain manual or automated actions occur, such as: creating a content root, deleting a style, a crawl job completed, etc.
Read the Listening for LuciadFusion events article to learn more about the available events and how to listen to them.
New featureLuciadFusion
LuciadFusion is now able to read certain data formats from Amazon S3 cloud storage. To enable this feature, one
must run LuciadFusion with the fusion.aws
Spring profile activated. A list of all supported
data formats can be found here. Please
refer to the developer platform for more
details.
Apart from out-of-the-box support for AWS S3, LuciadFusion now provides the building blocks required for adding
support for a different (cloud) storage technology. Developers aiming to do so, need to implement an
ILfnResourceConnector
to enable LuciadFusion to communicate with the storage, and an
ILcdInputStreamFactory
to allow model decoders to read its resources.
This is also described in more detail in the article linked above.
New featureLuciadFusion
CustomAuthenticationFusionPlatformApplication
to
run and explore the sample application.
See the
Configuring a custom user authentication logic
article for more information.
New featureLuciadFusion
LuciadLightspeed now ships with a component named lcd_aws
. This component contains an
ILcdInputStreamFactory
that is capable of reading files from Amazon S3 cloud storage. Most
model decoders that implement ILcdInputStreamFactoryCapable
automatically pick up this
factory by means of the services registry, and are now able to decode sources directly from S3. Please refer to
Supported data types to find out which
formats are supported exactly.
The implementation of this factory, named S3InputStreamFactory
, is also available in sample
code. It can be used as an example for developers aiming to add support for a different (cloud) storage
technology, or simply in case a modified version of the factory is desired. For example to set the
S3Client
that is used, or changing the default AWS Credentials Provider.
New featureLuciadFusion
Users can now associate additional information with a Data in LuciadFusion Studio by setting custom properties on that Data. Custom properties are name-value pairs, with the name uniquely identifying the property and the value containing the information for that property. The value of a custom property can be of type string, boolean, number or date.
The custom properties can be used to store additional metadata information about a Data, or they can be used to
store
information needed when extending LuciadFusion with custom functionality.
An example of the former would be to add custom properties
publisherName
(string
) and publicationYear
(number
) to
store the name of the publisher of the Data
and the year it was published.
An example of the latter would be to add a spotlight
(boolean
)
property to a Data, and using it to highlight certain Data that should stand out from the rest.
Custom properties can be set and obtained for a specific Data using the LuciadFusion Studio REST API.
The PATCH /api/data/{id}
endpoint allows users to set the custom properties for a Data.
The GET /api/data/{id}
endpoint allows users to obtain the custom properties for a Data.
New featureLuciadFusion
LuciadFusion is able to pick up custom properties from a metadata file when crawling or adding Data. This allows users to automatically associate additional metadata information with Data when it gets added to LuciadFusion. For example, if the metadata specifies the name of the publisher of the Data and a year when the Data was published, then this information could be extracted from the metadata and added as custom properties to the Data in LuciadFusion when it is imported.
An implementation of ILfnCustomPropertyDecoder
is needed to let LuciadFusion extract custom properties
from a TLcdISO19115Metadata
decoded by an ILcdMetadataDecoder
.
To learn more, see this article.
New featureLuciadFusion
LuciadFusion can be configured to allow querying Data based on queryable properties.
This allows users to search for Data based on the additional metadata information that is associated with the Data.
For example, when using custom properties publisherName
(string
)
and publishYear
(number
) to store the name of the publisher of the Data
and the year it was published, a user can search for all Data published by a specific publisher during a specific year.
An implementation of ILfnCustomPropertyDecoder
needs to be provided so that
LuciadFusion is aware of the type of the custom properties, as this has an impact on the supported query
operations.
See the
Define the custom properties
article for more information.
Querying Data based on queryable properties is done using the LuciadFusion Studio REST API.
The GET api/data/queryable-properties
endpoint lists all the properties that can be used to
query Data.
To query Data, use the GET api/data/filter
endpoint.
For more information on how to query Data and which operations are supported, see this article.
New featureLuciadFusion
ImprovementLuciadFusion
LCD-12354
ILcdWFSClientModelEncoderFactory
by adding an
@LcdService
annotation
to the implementation. This interface is used by WFS services to encode features. Only the factory with the highest
priority is used. By default, a factory with support for GML 2 / 3.1 / 3.2 and GeoJSON is used.
ImprovementLuciadFusion
LF-2294
ImprovementLuciadFusion
The LuciadFusion Studio async jobs thread pool is now configurable. the thread pool size can be configured with the following properties:
fusion.studio.configuration.jobs.threadPool.minimumSize
fusion.studio.configuration.jobs.threadPool.maximumSize
These properties are configured in the application-fusion.common.yml
configuration file.
Have a look there for more information about these properties.
ImprovementLuciadFusion
ImprovementLuciadFusion
LCD-12602
A new interface ILcdWMTSGXYLayerFactory
has been introduced to create request-based
layer factories for a WMTS layer. By adding an
@LcdService
annotation
to an implementation,
it is automatically picked by at runtime by the LuciadFusion Platform application.
ImprovementLuciadFusion
LCD-12572
TLcdEllipsoidRhumblineUtil#intersectionGeodesicRhumblineSFCT
has improved
one to two orders of magnitude for the case where the rhumbline is a meridian or a parallel.
ImprovementLuciadFusion
LF-2138
DataSource
bean has been marked with @Primary annotation
to indicate that this DataSource
bean will be given preference when multiple
DataSource
beans are defined. This essentially ensures that
LuciadFusion will work as intended in the presence of multiple user defined
DataSource
beans.
ImprovementLuciadFusion
findAndDecodeMetadata
method to ILcdMetadataDecoder
. This
method returns the decoded metadata, together with the location of the metadata files.
ImprovementLuciadFusion
ILcdMetadataDecoder
implementations (like TLcdISO19139MetadataDecoder
)
can now be discovered by the service loading mechanism.
A new TLcdCompositeMetadataDecoder
implementation has been added that will use the appropriate
ILcdMetadataDecoder
service to decode the given metadata source.
Bug fixLuciadFusion
LCD-12479
ILspMapScaleProvider
, causing objects to receive wrong styling until a repaint was forced.
Bug fixLuciadFusion
LCD-12340
ILspMapScaleProvider
can be used on a layer in a 3D view now. Before, optimizations
would cause the map scale provider to not be properly taken into account.
Bug fixLuciadFusion
LCD-12430, LCD-12522
TLcdJPEG2000ModelDecoder
: fixed an issue that prevented opacity bands in images from being
applied correctly in an ILcdGXYView
.
Bug fixLuciadFusion
LCD-12699
TLcdEllipsoidUtil#geodesicArea
could return incorrect results for triangles with coinciding points.
Bug fixInfrastructure Standards
LCD-12641
TLcd3DTilesProcessorBuilder
: Fixed an issue that would cause thin lines to appear at tile
edges when DRACO compression was enabled.
Upgrade considerationLuciadFusion
LCD-12725
Upgrade considerationLuciadFusion
For its new S3 functionalities, LuciadFusion makes the use of some new libraries:
- AWS SDK Annotations (version 2.17.168)
- AWS SDK Apache-client (version 2.17.168)
- AWS SDK Arns (version 2.17.168)
- AWS SDK Auth (version 2.17.168)
- AWS SDK Aws-core (version 2.17.168)
- AWS SDK Aws-query-protocol (version 2.17.168)
- AWS SDK Aws-xml-protocol (version 2.17.168)
- AWS SDK Http-client-spi (version 2.17.168)
- AWS SDK Json-utils (version 2.17.168)
- AWS SDK Metrics-spi (version 2.17.168)
- AWS SDK Profiles (version 2.17.168)
- AWS SDK Protocol-core (version 2.17.168)
- AWS SDK Regions (version 2.17.168)
- AWS SDK S3 (version 2.17.168)
- AWS SDK Sdk-core (version 2.17.168)
- AWS SDK Third-party-jackson-core (version 2.17.168)
- AWS SDK Utils (version 2.17.168)
- Reactivestreams (version 1.0.3)
- Eventstream (version 1.0.1)
- Commons-codec (version 1.11)
- Httpcomponents Httpclient (version 4.5.13)
- Httpcomponents Httpcore (version 4.4.13)
- org.reactivestreams reactive-streams New 1.0.3 MIT)
- Slf4j (version 1.7.36)
Upgrade considerationLuciadFusion
LuciadFusion now uses an RSQL library to support querying Data against LuciadFusion's built-in standard and user defined custom properties.As a result, upgrading an older version of LuciadFusion to V2022.1 or later is desired. The following JAR has been added.
- rsql-common-<version>.jar
Upgrade considerationLuciadFusion
- TLcdGeoTIFFModelDecoder#getImageInputStreamFactory
- TLcdGeoTIFFModelDecoder#setImageInputStreamFactory
- TLcdTABRasterModelDecoder#getImageInputStreamFactory
- TLcdTABRasterModelDecoder#setImageInputStreamFactory
- TLcdTFWRasterModelDecoder#getImageInputStreamFactory
- TLcdTFWRasterModelDecoder#setImageInputStreamFactory
- TLcdRasterModelDecoder#getTileInputStreamFactory
- TLcdRasterModelDecoder#setTileInputStreamFactory
- TLcdDIMAPModelDecoder#getImageInputStreamFactory
- TLcdDIMAPModelDecoder#setImageInputStreamFactory
#getInputStreamFactory
, while the
setters no longer have any effect. Please change any calls to these methods to
#getInputStreamFactory
or #setInputStreamFactory
instead. In the next
major release, these methods will be removed entirely.
Upgrade considerationLuciadFusion
TLspLabelingAlgorithm
, TLspOnPathLabelingAlgorithm
,
TLspInPathLabelingAlgorithm
and TLspCurvedPathLabelingAlgorithm
has been raised
to 1 iso 0.5. This means that by default, no labels will be dropped because of the quality setting. When you have a layer
that
has a lot of labeled objects, in some cases this might result in more work being done in the background, and in slower label
updates.
If this is the case, you can go back to the old behavior by calling the setQuality method of those algorithms with a value
of 0.5.
Upgrade considerationLuciadFusion
LCD-8329
TLcdSpatialReferenceParser
class is now deprecated. It is encouraged to use the
TLcdEPSGReferenceParser
class instead.
Upgrade considerationAdvanced Raster Services
LCD-12358
TLcdECWModelDecoder
has been upgraded to use ERDAS ECW JP2 SDK 6.0. The names of the JAR
files containing the native libraries reflect this change: libecw-5.4.*.jar
is now
libecw-6.0.*.jar
. No other changes are necessary.
Upgrade considerationInfrastructure Standards
LCD-12659
TLcdDWGModelDecoder
and TLcdDWGModelListDecoder
now by default decode extended entity types.
As a result, the objects in DWG models now by default include extended entity types if present in the data.
This can be reverted by calling the method clearExtendedEntityTypeSelection()
on the decoder.