2023.0.06

Bug fixLuciadRIA

RIA-4462
Fixed an issue in SLD styling, where fills without color but with opacity did not get assigned the correct opacity. Also fixed an issue where fills with an opacity value of 0 got a default color instead of being rendered transparent.

Bug fixLuciadRIA

RIA-4460
Fixed an issue in SLD styling, where external svg images without width and height, used in graphics without size parameter, were not correctly defaulted to a height of 16px.

Bug fixLuciadRIA

RIA-4459
Fixed an issue where HSPCTilesModel would log a warning when the model had a reference equal to EPSG:4978, but without identifier.

Bug fixLuciadRIA

RIA-4453
Fixed icon jittering and inaccuracies in Chrome on ARM-based MacOS devices.

2023.0

2023.0.05

ImprovementLuciadRIA

RIA-4450
SLD support has been enhanced with the possibility to use a function to define the wellKnownName of a mark graphic.

Bug fixLuciadRIA

RIA-4449
Fixed an issue in SLD functions to make sure the "recode" function can also handle number-properties.

Bug fixLuciadRIA

RIA-4431
Fixed an issue in SLD styling, where svg images without width and height, used in graphics without size parameters, were displayed with a size of 256px. This was corrected to the default size of 16px as specified.

Bug fixLuciadRIA

RIA-4430
Fixed an issue in SLD styling (webGL only), where graphic stroke patterns did not continue nicely at corners.

Bug fixLuciadRIA

RIA-4427
Fixed an issue in SLD styling, where dashed lines would not be rendered when the dash specification consisted of an uneven number of components.

Bug fixLuciadRIA

RIA-4426
Fixed an issue in SLD styling, where labels that have undefined or null content, should not get displayed.

Bug fixLuciadRIA

RIA-4424
Fixed an issue in SLD styling, where an empty fill tag should result in a default 50% grey fill.

Bug fixLuciadRIA

RIA-4260
Fixed an issue in symbology encoding, where a "square" mark was drawn too small. With this fix the given size will equal the length of the side of the square.

Bug fixDefense Symbology

RIA-4454
Fixed an issue with the Contain symbol, where the arrow was not always drawn perfectly perpendicular to the opening of the circle.

2023.0.04

Bug fixLuciadRIA

RIA-4442
Fixed a divide-by-zero error when editing a shape draped on a TileSet3DLayer. It occurred when dragging a handle close to the edge of the viewport.

2023.0.03

ImprovementLuciadRIA

Icon3DStyle: the initial load time of glTF models has been improved, specifically for models that have parts that reference the same texture.

ImprovementLuciadRIA

RIA-3846
IconStyle.modulationColor is now also applicable when drawing icons on a non-hardware accelerated map.

Bug fixLuciadRIA

RIA-4422
Fixed an issue where drawing complex stroke lines on a non-hardware accelerated map resulted in throwing exceptions when switching to the fallback pattern.

Bug fixLuciadRIA

RIA-4434
KMLLayer draws image icons, coming from KMZ image resources, scaled to the height of 32 pixels preserving the width to height ratio. Before the fix, the resource images where resized to 32x32 pixel image, making them non-uniformly scaled.

Bug fixLuciadRIA

RIA-4435
ParameterizedPointPainter: an error was thrown when a FeatureLayer with a ParameterizedPointPainter was removed from the map and later added again.

Bug fixDefense Symbology

RIA-4437
Fixed an issue where helper lines were not drawn when creating a military symbology feature that has a GeoBuffer shape.

Bug fixDefense Symbology

RIA-4429
Fixed an issue with editing military symbology features, where you could not move tactical graphics with constrained shapes.

2023.0.02

ImprovementLuciadRIA

RIA-4405
FeatureLayer: the initial load time when multiple FeatureLayer are added to a map has been improved.

Bug fixLuciadRIA

RIA-4419
Fixed an exception thrown when loading a 3D Icon from a GLB file that has 16 bits integer colors per vertex.

Bug fixLuciadRIA

RIA-1755
WFSFeatureStore works properly when the data coordinate reference from WFS capabilities is represented as a well-known text (WKT). Before the fix, in such a situation WFSFeatureStore could not be instantiated.

2023.0.01

ImprovementLuciadRIA

RIA-4399
Properties of features in an OGC 3D tile set can now be retrieved from the Batch Json table and used as Feature ID or in the style's expressions (only applies to 1-dimension numerical values).

ImprovementLuciadRIA

RIA-3761
ReferenceProvider.parseWellKnownText now also supports parsing topocentric references.

ImprovementLuciadRIA

RIA-4367
Bundled image resources in a KMZ file are now loaded and used to properly visualize KML features on KMLLayer. Before, bundled resources in a KMZ file were not handled.

ImprovementLuciadRIA

RIA-4396
ReferenceProvider.createTopocentricReference now allows you to specify an identifier for the created topocentric reference. This can either be done by passing the identifier directly (see CreateTopocentricReferenceOptions.identifier), or by specifying an authority name and code using which the identifier is constructed (see CreateTopocentricReferenceOptions.authorityName and CreateTopocentricReferenceOptions.authorityCode).

ImprovementLuciadRIA

ReferenceProvider now additionally supported WKT strings/EPSG codes with the following datums:
  • Korean Datum 1985
  • Macao 1920

ImprovementLuciadRIA

RIA-3820
MeshUrlIcon3DStyle now extends the HttpRequestOptions interface. This makes it possible to provide authentication headers.

Bug fixLuciadRIA

RIA-4414
Fixed an issue with HSPC tile loading caused by WKT references that have a trailing null character.

Bug fixLuciadRIA

RIA-4170
The spherical and ellipsoidal Geodesy.area and Geodesy.shortestDistanceToLine implementations didn't return correct results when passing input defined in a reference that is not geodetic. The cartesian Geodesy.area implementation now also throws a programming error when passing input defined in a geocentric reference: the area calculation is 2D, while a geocentric reference defines 3D points. This would result in incorrect results.

Bug fixLuciadRIA

RIA-4398
GeodesyFactory didn't allow creating a cartesian, spherical nor ellipsoid geodesy for topocentric references.

Bug fixLuciadRIA

RIA-4396
Topocentric references are now better supported when using a WebGLMap. Among others, it was not possible to fit on a map using bounds defined in a topocentric reference.

Bug fixLuciadRIA

RIA-4397
Visualizing vector data that is defined in a topocentric reference on a 3D map now works. Before this fix no data appeared and a TypeError was logged on the developer console.

Bug fixLuciadRIA

RIA-4378
Fixed an issue where edit handles would not stick to terrain while toggling visibility of an elevation layer.

Bug fixLuciadRIA

RIA-4249
Web worker issues due to destroying the map quickly after it was created are now correctly caught.

Bug fixLuciadRIA

RIA-4365
A LoadingStrategy with refresh settings will now clear its internal timer resources when a FeatureLayer configured with that loading strategy is removed from the map.

Bug fixLuciadRIA

RIA-4041
Large geocentric polygons were not flat, but followed the ellipsoid's curvature in 3D.

Bug fixLuciadRIA

RIA-4351
Improved the query process with the clustering transformation and simultaneous model updates. Before the fix it could happen that LayerTreeNode.whenReady promise was resolved before the model updates were handled.

Upgrade considerationLuciadRIA

RIA-4332, RIA-4359
Icon3DStyle: the pbrMetallicRoughness.baseColorFactor defined in glTF files was not applied correctly, resulting in a wrong color to be visualized. This fix also applies to OGC 3D Tiles visualized in a TileSet3DLayer. This fix might result in a different visualization of your model when the glTF file does not define a color texture or color vertex attribute. To get the correct visualization in this case you need to enable PBR via the PBRSettings property on Icon3DStyle or on MeshStyle.

2023.0

New featureLuciadRIA

RIA-4152
The SLD support is extended with the possibility to define custom functions and to use a set of pre-defined functions. For more information about defining and using those functions, see the article SLD custom functions - Usage and examples. The symbology encoding sample has been extended to incorporate a custom function altering the width of the roads based on their type.

New featureLuciadRIA

RIA-3020, RIA-3705

WMTS support is extended to handle Tile Matrix Sets of which the first Tile Matrix has more than 8 columns and 8 rows, only in the case of a WebGL-enabled maps.

RasterTileSetLayer can now display a red hatched rectangle instead of any actual imagery data when zoomed out to a fair distance from the data. More information can be found in the article Why does my imagery layer show a red (hatched) rectangle on a WebGL map?

You can customize the style of the raster outline drawn when zoomed out far from the data. For more information please refer to the article Learn how to visualize and style raster data using a RasterTileSetLayer. and the API documentation of RasterStyle, where you can find the new fillStyle and lineStyle properties.

New featureLuciadRIA

On point clouds, a large number of points displayed on the screen can cause a decrease in performance. To counteract this effect, the number of points displayed in a layer can now be limited using the new performanceHints.maxPointCount property. This only applies to point clouds. See Limiting the number of points in a layer for more details

New featureLuciadRIA

You can now deal with "WebGL context loss" events in LuciadRIA. For more information, read the API documentation of WebGLMap.webGLContext and WebGLMap.reboot().

New featureLuciadRIA

The WMTS support is extended to handle Tile Matrix Sets that are not organized as a quad-tree.

ImprovementLuciadRIA

RIA-4335
GeoBuffer contours can now be accessed through theGeoBuffer.contour field.

ImprovementLuciadRIA

Improved support for ScalingMode.ADAPTIVE_WORLD_SIZE for HSPC point clouds. ScalingMode.ADAPTIVE_WORLD_SIZE is now the recommended setting for all point clouds.

ImprovementLuciadRIA

RIA-4313
It is possible to define LoadSpatially to request data with a single query object for the whole 3D scene. For more information please consult LoadSpatiallyStrategyConstructorOptions API.

ImprovementLuciadRIA

The TileSet3DLayer class has a new property named loadingStatus, which is an object that represents the layer's current status of tile loading and rendering. You can listen to changes in this status by subscribing to the "LoadingStatusChanged" event.

ImprovementLuciadRIA

RIA-4286
LuciadRIA provides now a simple Cursor implementation that iterates over an array of elements. For more details, please consult ArrayCursor API.

ImprovementLuciadRIA

RIA-3586

You can now use complex stroke lines with a width in world units, for example meters. See the ComplexStrokedLineStyle.uom property for details.

You can also scale your icon or text decorations in world size, see the size property on their factory method options.

World-sized complex stroke lines are not supported in a non-WebGL Map.

ImprovementLuciadRIA

RIA-4178
The Transformation class now has two new properties: inputReference and outputReference.

ImprovementLuciadRIA

RIA-4178
The Transformation class now has a new property inverseTransformation that allows you to do transformations from output reference back to input reference.

Bug fixLuciadRIA

Draping of vector and raster data has been improved. Cases where vector or raster data could be blurry, or would be clipped at the sides have been fixed.

Upgrade considerationLuciadRIA

RIA-3882
LuciadRIA imports now always include the file extension. This allows LuciadRIA modules to be resolved by the browser's native module resolver, as well as build tools using NodeJS' ECMAScript module resolution rules. LuciadRIA sample code has been updated to use these new ES module resolution rules:
  • A sample's package.json now mentions "type": "module".
  • A sample's tsconfig.json now sets "moduleResolution": "nodenext".
  • Imports in samples now also contain the file extension (.js or .jsx)
It's expected that most users will not run into any issues upgrading. If your application has a non-trivial, multi-package setup that doesn't treat LuciadRIA as a regular dependency, you might have to adapt your setup. See ES modules as of LuciadRIA 2023.0 for more details

Upgrade considerationLuciadRIA

The creation of WMTSTileSetModel now can create a RasterTileSetModel that does not have a quad-tree tile set structure.

Users of a WebGL enabled map are not affected by this change as the rendering supports this type of tile set structures.

Users of a Canvas map are affected as this map only supports raster tile sets that have a quad-tree structure. You need to update the call for the WMTS model creation to restrict use to Tile Matrix Sets that have a quad-tree. You can do this by adding the option useQuadTreeOnly: true in the WMTSTileSetModelCreateOptions when calling the method createFromURL or createFromCapabilities.

Upgrade considerationLuciadRIA

The RasterTileSetModel can now represent tile sets that are not a quad-tree. It allows to create tile sets where the bounds on different levels are not exactly the same and for which the number of rows and columns is not a power of two with respect to the top level. The bounds for each level in the tile set must be aligned in the top-left corner.

The constructor options for the following raster models are affected by this change. They now use a new way to express the tile set structure.

To maintain backward compatibility these constructor options have an equivalent with Deprecated in their name, i.e., RasterTileSetModelConstructorDeprecatedOptions for RasterTileSetModelConstructorOptions. When using TypeScript type declarations you may need to update your code to use the deprecated options type.

Upgrade considerationLuciadRIA

You can now use world-sized lines for non-draped 3D lines. Before, these were always draped on terrain.

The behavior is now in line with other shape painting: the line will be draped if you explicitly enable draping in your style, or if the line is 2D (Z=0 and depth=0). Otherwise, the line is not draped.

If you have 3D lines with a world size, these were always draped before, so if you want to keep that behavior, specify draped: true in your ShapeStyle.

Upgrade considerationLuciadRIA

You can now use complex stroke lines for non-draped 3D lines. Before, these were always draped on terrain.

The behavior is now in line with other shape painting: the line will be draped if you explicitly enable draping in your style, or if the line is 2D (Z=0 and depth=0). Otherwise, the line is not draped.

If you have 3D lines with complex strokes, these were always draped before, so if you want to keep that behavior, specify draped: true in your ShapeStyle.

In addition, the width of draped complex strokes is now much more stable, also when looking at the horizon.

Non-draped pixel-sized 3D lines with complex strokes are oriented towards the viewer. Draped strokes, or world-sizes strokes are never screen-oriented.

Keep in mind that certain deformations of your pattern is expected, particularly when looking along the line.

Complex strokes on 3D lines
Example of complex strokes on 3D lines.