2026.0.03
ImprovementLuciadRIA
RIA-5360
HttpRequestOptions#credentials now also accepts the standard credentials modes defined by
the browser's Fetch API ("include", "same-origin" and "omit"), in addition to the previously supported boolean
values. This gives you more flexibility for authentication and cross‑origin scenarios. When you set
HttpRequestOptions#credentials to a boolean, true maps to "include" and false maps to "same-origin".
ImprovementLuciadRIA
RIA-5788
UrlIconStyle now extends HttpRequestOptions. This allows you to
specify HTTP request options such as headers, which is useful, for example, when fetching and drawing icons that
require authentication using GeoCanvas#drawIcon.
ImprovementLuciadRIA
RIA-5754
anchorOffset property to PinStyle to specify the offset at which the pin should start.
ImprovementDefense Symbology
RIA-4214

ImprovementDefense Symbology
RIA-5339
ImprovementDefense Symbology
RIA-4997
ImprovementDefense Symbology
RIA-5090
MilSymStyle interface.
-
It is now possible to configure the symbol frame color to be used for icon symbols.
This color can be configured using
MilSymStyle.symbolFrameColor. The default value is#000000(black). This custom frame color is ignored in some specific cases where the frame color indicates the affiliation of the symbol. -
It is now possible to configure the alternate fill color for partially filled icon symbols.
This color can be configured using
MilSymStyle.alternateFillColor. The default value isrgba(0,0,0,0)(transparent).
Bug fixLuciadRIA
RIA-5454
WMSTileSetModel or WMSImageModel, the image format
for GetMap requests is now picked up from the capabilities. Before this fix, the image format
always defaulted to image/png, which could cause errors when the WMS service did not support
that format.
Bug fixLuciadRIA
RIA-5822
TileSet3DLayerConstructorOptions.offsetTerrain on certain low-end devices.
Bug fixLuciadRIA
RIA-5786
LayerTree's NodeMoved and NodeRemoved
events are now fired when the map is ready. This fix ensures that these events are triggered in the right order for
layer changes that were done before the map was ready.
Bug fixDefense Symbology
RIA-4310
Fixed an issue where width values in some tactical graphics labels were fetched from the "Additional Information" modifier instead of from the "Width" modifier.
Affected symbols:
| Standard(s) | Set Code | Symbol Code | Name |
|---|---|---|---|
| APP-6D & MIL-STD-2525d | 25 | 170100 | Air Corridor |
| APP-6D | 25 | 170101 | Air Corridor With Multiple Segments |
| APP-6D & MIL-STD-2525d | 25 | 170200 | Low-Level Transit Route |
| APP-6D & MIL-STD-2525d | 25 | 170300 | (Temporary) Minimum-Risk Route |
| APP-6D & MIL-STD-2525d | 25 | 170400 | Safe Lane |
| APP-6D & MIL-STD-2525d | 25 | 170500 | Standard Use Army Aircraft Flight Route (SAAFR) |
| APP-6D & MIL-STD-2525d | 25 | 170600 | Transit Corridors |
| APP-6D & MIL-STD-2525d | 25 | 170700 | Special Corridor / Unmanned Aircraft (UA) Route |
Bug fixDefense Symbology
RIA-4311, RIA-5824
Fixed an issue where min/max altitude values in some tactical graphics labels were fetched from the "Additional Information" modifier instead of from the "Altitude/Depth" modifier.
Affected symbols:
| Standard(s) | Hierarchy Code | Name |
|---|---|---|
| APP-6A & APP-6B | 2.X.2.1.2.2.3 | Standard-Use Army Aircraft Flight Route (SAAFR) |
| APP-6A | 2.X.2.3.3.2 | Airspace Coordination Area (ACA) |
Bug fixDefense Symbology
RIA-4298
Bug fixDefense Symbology
RIA-4061
Fixed an issue where the APP-6A and APP-6B "Antitank Obstacle - Obstacles: Tetrahedrons Dragons Teeth and Other Similar Obstacles" symbol did not have an icon representation.
Moreover, it is now possible to configure the icon type of this symbol, it can be represented by a different icon depending on its type: "Fixed And Prefabricated", "Movable" or "Movable And Prefabricated". Unfortunately the APP-6A and APP-6B specifications do not indicate how this obstacle type should be encoded in the symbol.
The approach taken here is similar to other Luciad products: the obstacle type is encoded in the
typeOfEquipment text modifier of the symbol.
The value should either be one of the following values (casing is not important):
| Obstacle Type | Possible values |
|---|---|
| Fixed And Prefabricated | "Fixed And Prefabricated", "F", "01" |
| Movable | "Movable", "M", "02" |
| Movable And Prefabricated | "Movable And Prefabricated", "P", "03" |

Bug fixDefense Symbology
RIA-5296
Bug fixDefense Symbology
RIA-5215
Bug fixPanoramic
RIA-5832
Upgrade considerationLuciadRIA
RIA-5827
copy-webpack-plugin: updated to version14.0.0terser-webpack-plugin: updated to version5.4.0webpack: updated to version5.105.4webpack-cli: updated to version6.0.1webpack-dev-server: updated to version5.2.1
2026.0
2026.0.02
Bug fixLuciadRIA
RIA-5779
Bug fixLuciadRIA
RIA-5456
Bug fixLuciadRIA
RIA-5437
2026.0.01
ImprovementLuciadRIA
RIA-5455
ImprovementLuciadRIA
RIA-4171
ImprovementLuciadRIA
RIA-5229
Bug fixLuciadRIA
RIA-5398
Bug fixLuciadRIA
RIA-5438
Bug fixLuciadRIA
RIA-5449
Bug fixLuciadRIA
RIA-5441
GraphicsEffects.antiAliasing would result in the map
having a black background rather than a transparent one.
Bug fixLuciadRIA
RIA-5436
Bug fixLuciadRIA
RIA-5419
Map.pickAt() on 3D maps, where sometimes it might return
multiple consecutive results for the same feature and layer.
Bug fixLuciadRIA
RIA-5413
like and eq no longer
worked as expected when using them in SLD Rule Filters when comparing numbers parsed as strings.
Now both like and eq will evaluate to true
when comparing a number with a string corresponding to that number. ("1" vs 1).
Bug fixLuciadRIA
RIA-5310
OGC3DTilesModel.
Bug fixDefense Symbology
RIA-5435
MilitarySymbologyPainter.createSymbolImage lead to a crash.
Bug fixDefense Symbology
RIA-5391


2026.0
New featureLuciadRIA
RIA-5227
OGCFilterEncoder.createOGCFilterEncoder to create an encoder
for your OGCExpression based on the correct WFSVersion.
The encoder will use the proper OGC XML filter format.
New featureLuciadRIA
RIA-4988
TileSet3DLayerConstructorOptions#attributeFilter property allows filtering attributes of HSPC datasets.
See Tuning performance and visual quality of point clouds.
New featureLuciadRIA
RIA-5349
WFSFeatureStoreCreateOptions#splitBBOX allows you to choose whether the BBOX filter should
be split when it contains the antimeridian. When set to true, two BBOX filters will be created and combined with
an OR operator. When set to false, a single BBOX filter crossing the antimeridian will be created.
New featureDefense Symbology
Partial support for the military standard APP-6E has been added.
It is now possible to create and visualize MilitarySymbol instances for the
APP-6E military standard.
APP-6E support is currently limited to the Cyberspace icon symbols. All supported symbol sets are listed in the supported military standards article .
To visualize the supported symbols, you can run the "Military Symbology Overview" sample, located in samples/symbology/allsymbols within the release directory.
ImprovementLuciadRIA
Editor that not only edits the shape of a feature, but also its properties.
EditHandle and EditController can now emit EditProperty events.
By default, these events are not emitted. You need to implement this behavior in your custom editor.
You can use this event to create "edit property" undoables in your application.
For more information, check the API documentation of EditHandle, EditController, and their new "EditProperty" events.
ImprovementLuciadRIA
UndoManager now emits "Undo" and "Redo" events when an undo or redo operation is performed.
Previously, only change events for the undo and redo stack were emitted.
You can use these events to perform custom actions in your application when an undo or redo operation occurs.
ImprovementLuciadRIA
RIA-5382, RIA-4993
IconStyle.transparency and ParameterizedPointPainterConstructorOptions.transparency flags respectively.
ImprovementLuciadRIA
ImageCaptureUtil to ria-toolbox-core to support reliable
map image capture using GPU rendering.
ImprovementLuciadRIA
Infinite-Grid tool to the LuciadRIA Toolbox. It renders a GPU-accelerated, infinite reference grid to 3D maps.
See toolbox/ria/infinite-grid/README.md for more information.
ImprovementLuciadRIA
PickController, and its subclasses SelectController and HoverController, now support asynchronous picking.
You can enable asynchronous picking by setting the new async option on the controller to true.
For more information, check the API documentation of PickController, SelectController and HoverController.
ImprovementLuciadRIA
RIA-4736
Camera.viewProjectionMatrix to retrieve the camera’s view–projection matrix.
ImprovementLuciadRIA
ImprovementLuciadRIA
UrlStore queries.
ImprovementLuciadRIA
RIAMap now offers asynchronous versions of its picking methods.
The methods take the same arguments as their synchronous counterparts and return a Promise.
Here is a list of the new methods:
RIAMap.pickClosestObjectAsyncRIAMap.pickClosestObjectRectangleAsyncRIAMap.pickAtAsyncRIAMap.pickAtRectangleAsync
ImprovementLuciadRIA
KMLCodec now decodes ExtendedData into
KMLFeature.properties.extendedData. Supported sources:
Data, SchemaData and foreign-namespace elements.
ImprovementLuciadRIA
GoogleLayer
has been removed from the API.
It's recommended to use GoogleMapsTileSetModel instead.
Check the Differences between
GoogleMapsTileSetModel, GoogleImageModel and GoogleLayer
article for more information.
ImprovementLuciadRIA
RIA-5128
@luciad/ria/util/License.js API.
Existing applications that already configured a LuciadRIA license will continue to work as before.
For the optional modules, the license check is performed also at the following API entry points:
-
Constructive Geometry
ConstructiveGeometryFactory.createEllipsoidal()ConstructiveGeometryFactory.createSpherical()ConstructiveGeometryFactory.createCartesian()
-
Panoramics:
GeoCanvas.drawPanorama()
-
Military Symbology
SymbologyProvider.getSymbology()
ImprovementDefense Symbology
Bug fixLuciadRIA
RIA-5275
saveState() and restoreState() calls were not
properly
delegated in ComposedShapeEditor.
Bug fixLuciadRIA
Bug fixLuciadRIA
RIA-5387
Bug fixLuciadRIA
RIA-4344
RIAMap.maxMemoryUsageHint is now correctly applied after a
RIAMap.reboot triggered by GPU device loss. Previously, default settings were applied.
Bug fixLuciadRIA
RIA-4289
Bug fixLuciadRIA
RIA-4549
Upgrade considerationLuciadRIA
KMLUtil.createGroundOverlayLayer
now returns a promise for
FeatureLayer
(previously a promise for Layer).
Upgrade considerationLuciadRIA
Map implementation has been removed from the API.
Both Map and WebGLMap have been deprecated in favor of
RIAMap, which
leverages WebGPU for hardware-accelerated rendering.
It is no longer possible to create non-hardware-accelerated maps or WebGL-based maps.
To ease the transition, WebGLMap and Map are now both aliases for the
new RIAMap.
Any maps created with new Map() or
new WebGLMap()
will automatically instantiate WebGPU-powered RIAMap instances.
We recommend updating your code to use RIAMap directly.
Upgrade considerationLuciadRIA
Upgrade considerationLuciadRIA
EditController and CreateController
have been aligned with the EditSettings type.
To this end, the styles that were previously configured
on the options object have been moved to a styles property.
For example, the following code:
const editController = new EditController(layer, feature, {
handleIconStyle: {
image: createSquare({
width: 8,
height: 8,
fill: "white",
stroke: "black",
strokeWidth: 1
})
}
});
should be updated to:
const editController = new EditController(layer, feature, {
styles: {
handleIconStyle: {
image: createSquare({
width: 8,
height: 8,
fill: "white",
stroke: "black",
strokeWidth: 1
})
}
}
});
Upgrade considerationLuciadRIA
RIAMap.pick methods report features from TileSet3DLayer anymore.
The new asynchronous picking methods do report these features and are the recommended approach.
To restore synchronous picking support for TileSet3DLayer,
enable the synchronousPicking flag in TileSet3DLayerConstructorOptions.
For more information, see Picking on 3D Tiles.
Upgrade considerationLuciadRIA
MapNavigator methods have been removed from the API.
Use the newer pan(), zoom(), rotate()
and fit() methods instead.
Upgrade considerationLuciadRIA
@luciad/ria-toolbox-map-borders component in the LuciadRIA Toolbox. It offers enhanced support for bordered maps, axis rendering, and custom border drawings.
For more information about this LuciadRIA toolbox component, refer to the How to draw a map with borders article.
For guidance with the migration from the previous API to the LuciadRIA Toolbox, refer to the Migrating to the map-borders component in the LuciadRIA Toolbox article.
Upgrade considerationLuciadRIA
-
Blending of (semi-)transparent colors now happens in linear color space. In previous LuciadRIA versions, it happened in gamma
color space (sRGB). This move solves blending artifacts, but it can make blended colors slightly
brighter. This is especially noticeable when rendering thin lines or thin text.

-
Texture sampling now happens in linear color space. In previous LuciadRIA versions, it happened in gamma color space (sRGB).
Like for blending, this move solves minor artifacts, but the texture sampling might look slightly differently
than before.

-
Lighting now happens in linear color space. In previous versions, it happened in gamma color space (sRGB).
This move results in a harder but more correct lighting gradient. It can make parts of the lit objects brighter
or darker than before.

- Image-based lighting now correctly interprets the colors when using a PNG or JPEG as reflection map. In previous versions it interpreted these colors as linear colors, which made the lighting brighter than it should.
Upgrade considerationLuciadRIA
BloomEffect.
Instead, you can now configure a luminance threshold on each individual BloomStyle.
This means that bloom is now only applied to features for which a BloomStyle has been set.
Merely configuring a BloomEffect on a RIAMap will no longer have any
effect.
Upgrade considerationLuciadRIA
expected-lite: updated to version0.9.0glu: updated to version1.3+7libjpeg: updated to version9flibwebp: updated to version1.5.0
gladprotobufrapidxml-ns
Upgrade considerationLuciadRIA
-
The
RIAMap.webGLContextproperty has been removed. Has been removed in favor ofRIAMap.webGPUDevice, which means listening for WebGL context lost events is no longer supported. Instead, listen to WebGPU device loss events. See Dealing with WebGPU device losses for more information. -
A new event,
"WebGPUDeviceChanged", has been added to theRIAMapAPI. -
The RIAMap's
"PostRender"event now usesGPUTexture.
Upgrade considerationDefense Symbology
A framework dedicated to the editing of military symbology has been added to LuciadRIA. The LuciadRIA API now includes:
- The
MilitarySymbologyCreateController, to improve user experience and correctness when creating multi-pointMilitarySymboltactical graphic instances. - A
MilitarySymbologyEditControllerto improve user experience and correctness when editing multi-pointMilitarySymboltactical graphic instances. - A
MilitarySymbologyEditor. It is used under the hood of the new controllers, and ensures correct editing behaviour enforcing the necessary constraints for the different tactical graphics.
With the introduction of this dedicated military symbology editing framework, the previous default
editing mechanism using the ShapeEditor will break.
All tactical graphics will be editable as if they were plain Polyline shapes,
without any behavior specific to military symbology.
For more information about using this new editing framework, see the migration guide. For more information about the behavior of this new editor for different types of tactical graphics, see the creation and editing article.