2024.0.06
New featureLuciadRIA
toolbox/ria/tour/README.md
.
The Monitoring building information sample in LuciadRIA demonstrates the basic usage of this new feature.
Bug fixLuciadRIA
RIA-4929
hasMesh
and HasPointcloud
properties of OGC3DTilesModel
chere not working when building a project with vite.
2024.0
2024.0.05
ImprovementLuciadRIA
RIA-4926, RIA-4136
FormatDate
. Typically, it is used to
format a date inside a label. The same functionality is supported through a new build-in custom function
dateFormat
.
For more information, see SLD
Custom Functions - dateFormat.
Bug fixLuciadRIA
RIA-4924
MeshStyle
has pbrSettings
defined.
Bug fixLuciadRIA
RIA-4820
WFSFeatureStore
failed to request features located above the terrain
and close to the camera when the camera was tilted towards the horizon.
The LoadSpatially
strategy now correctly requests features in this scenario.
Bug fixLuciadRIA
RIA-4915
Bug fixLuciadRIA
RIA-4908
ModelDescriptor
. Now an attribute without name gets the attribute role as name.
Bug fixLuciadRIA
RIA-4913
GeoBuffer
shapes
would sometimes result in a ProgrammingError: "ExtrudedShape: invalid base shape."
This was caused by a mismatch between the Z-coordinates of the computed contour and the main shape.
Bug fixLuciadRIA
RIA-4909
EditMoveConstraint
.
Bug fixLuciadRIA
RIA-4907
OcclusionStyle
were not instantly displayed.
Bug fixLuciadRIA
RIA-4900
Upgrade considerationLuciadRIA
RIA-4893
abseil
. This new dependency requires no code
changes.
2024.0.04
ImprovementLuciadRIA
RIA-4742
Bug fixLuciadRIA
RIA-4791
Geodesy.shortestDistanceToLine
often returned incorrect values when using a spherical or
ellipsoidal Geodesy
instance.
Bug fixLuciadRIA
RIA-4879
FeatureLayer
: Fixed an issue where vertical polygons would not always be filled correctly.
Bug fixLuciadRIA
RIA-4892
CreateController
), where the bounds would be visible (at lon-lat [0,0]) before they were being created.
Bug fixLuciadRIA
RIA-4885
2024.0.03
ImprovementLuciadRIA
RIA-4732
wrapAroundWorld
mandating the central meridian to be 0 has been removed.
ImprovementLuciadRIA
RIA-1305
ReferenceProvider
can now more robustly detect which projection is used in WKT strings.
This means that additional underscores and whitespace in the name of the projection are now allowed.
ImprovementLuciadRIA
RIA-4884
mipMapFiltering
field of a MeshStyle
.
ImprovementLuciadRIA
RIA-3519
identifiers
OGC expression in WFSFeatureStore
.
Previously, using the identifiers
OGC expression for the 'query.filter' property passed to
the WFSFeatureStore.spatialQuery
method led to an error due to the WFS constraint
that restricts combining the OGC `ResourceId` with other OGC filter expressions.
Bug fixLuciadRIA
RIA-4883
Bug fixLuciadRIA
RIA-4886
Bug fixLuciadRIA
RIA-4881
Bug fixLuciadRIA
RIA-4882
CircleBy3Points
,
CircularArcBy3Points
and CirclularArcByBulge
with the
CreateController
when the shape was not defined in a geodetic coordinate reference.
Bug fixLuciadRIA
RIA-4789
swapAxes
in GeoJsonCodec
has been corrected to ensure that it is now applied when invoking
decodeGeometryObject
and decodeGeometry
.
Previously, the swapAxes
option was applied only with the
decode
and decodeObject
methods.
Bug fixLuciadRIA
RIA-4876
KMLLayer
.
Previously, the KMLLayer.drapeTarget
setting was not applied to KML placemarks with point geometry,
and the icons were always rendered on the terrain surface.
Bug fixLuciadRIA
RIA-4873
Arc
creation.
Previously, creating an arc with a sweep angle of 360 degrees resulted in an arc of 0 degrees.
Sweep angles are now normalized to the range of -360 to 360 degrees inclusively.
Upgrade considerationLuciadRIA
RIA-4871, RIA-4880
2024.0.02
ImprovementLuciadRIA
RIA-4865
WFSCapabilitiesOperation
now includes
a supportedRequests
field.
This field informs users about the HTTP request methods ('GET' or 'POST') that the WFS service permits,
and provides the corresponding URLs for each operation.
ImprovementLuciadRIA
RIA-4864
HSPCTilesModel
from the constructor options.
ImprovementLuciadRIA
RIA-4843
EditHandle
now has an invalidate()
method that you can use
to invalidate the visualization of the handle. For example, use invalidate()
when the handle's style has changed and onDraw()
needs to be re-evaluated.
ImprovementLuciadRIA
RIA-4859
CompositeController
.
Bug fixLuciadRIA
RIA-4869
Bug fixLuciadRIA
RIA-4804
bounds
of a TileSet3DLayer
that has a
transformation and a reference different than the map reference. In example, this would prevent the correct
placement of geo-referenced tiles with a transformation on a 2D map.
Bug fixLuciadRIA
RIA-4872
Bug fixLuciadRIA
RIA-4846
RasterTileSetModel
models a sparse tileset. In a
sparse tile set, some tiles may be missing in the tile tree. Before this fix, LuciadRIA would not correctly load
such tilesets: some tiles would not refine into higher detail when zooming in. Refer to the
isSparseTileSet
flag on RasterTileSetModelConstructorOptions
for
details.
Bug fixLuciadRIA
RIA-4860
Bug fixLuciadRIA
RIA-4856
Bug fixLuciadRIA
RIA-4797
SwipeController
: raster layers that are on top
of a base imagery layer that is completely transparent, were invisible while swiping.
2024.0.01
ImprovementLuciadRIA
RIA-4831
PointCloudStyle
or MeshStyle
using the
value that is already present, the layer that uses that style will no longer needlessly invalidate itself.
ImprovementLuciadRIA
RIA-4784
createGeodesy
function in GeodesyFactory
,
that will return the most optimal Geodesy
for any given reference.
Bug fixLuciadRIA
RIA-4851
Bug fixLuciadRIA
RIA-4849
TileSet3DLayer
layers could be invisible while their visibleInTree
property was true, in the case that the layer got moved in the layer tree.
Bug fixLuciadRIA
RIA-4764
Bug fixLuciadRIA
RIA-4845
FeatureLayer
: fixed a memory leak that would occur when an invisible layer was added to the map
and model updates were applied while it remained invisible.
Bug fixLuciadRIA
RIA-4819
startAngle
and endAngle
to
take into account rotation inside the reference of the given line shape.
Bug fixLuciadRIA
RIA-4817
Icon3DStyle
: when a glTF file without normals was used, the 3D icon would not be correctly
visualized when lighting is enabled.
Bug fixLuciadRIA
RIA-4813
null
as value for globeColor
in the
Map
constructor options was treated as undefined
. Not setting the
globeColor
option (or setting it to undefined
) results in the globe
having a default grey color, whereas setting it to null
means no globe will be rendered at
all.
2024.0
New featureLuciadRIA
New featureLuciadRIA
toolbox/ria/overviewmap/README.md
for
more information.
Basic usage is illustrated in the LuciadRIA Panorama sample.
New featureLuciadRIA
samples/common
have been moved to toolbox/ria
.
The prefix of their package names also changed from @luciad/ria-sample-common
to
@luciad/ria-toolbox
to clarify that these packages can be reused in your own project.
More information can be found in
Reuse sample code in your own applicationNew featureLuciadRIA
GoogleMapsTileSetModel
allows you to create a model for the desired Google Maps data,
which you can then add to a LuciadRIA map using a RasterTileSetLayer
.
For more information, see the Visualize Google 2D Tiles tutorial.
Basic usage is illustrated in the LuciadRIA Data Formats sample.
New featureLuciadRIA
- Implicit tiling (both JSON and binary subtrees, no metadata yet).
- GLB/glTF (using internal, Base64 inlined or external buffers) as payload.
- Supported glTF 2.0 extensions:
- KHR_texture_transform
- KHR_mesh_quantization
- EXT_meshopt_compression
- EXT_mesh_features
New featureLuciadRIA
PointCloudStyle
now offers a density
property.
It allows you to paint density maps by setting a ColorMap
on the point cloud style.
The ColorMap
is used to render the point cloud model as a heatmap of the point density.
For more information, see Density painting of point cloud data.
New featureLuciadRIA
toolbox/ria/magnifier/README.md
for more
information.
Basic usage is illustrated in the LuciadRIA Monitoring building information sample.
New featureLuciadRIA
Map
now exposes a defaultController
field, which makes it easier to use custom navigation, hover or select controllers
on the map. There are also new DefaultController
and NavigateController
classes that expose the default map behavior.
For more information, see the
Managing user input with LuciadRIA controllers
tutorial.
New featureLuciadRIA
ImprovementLuciadRIA
RIA-4747
createExtrudedShape
function now includes a generic type for type inference of
baseShape
.
ImprovementLuciadRIA
RIA-4259, RIA-4288
map.controller = null
.
You can now also revert back to the start of the creation process
by calling CreateController.restart()
.
For more information, check out the Cancelling create and edit interactions how-to article.
ImprovementLuciadRIA
ImprovementLuciadRIA
RIA-1330
ImprovementLuciadRIA
AttributionChanged
event in AttributedTileSet
,
to allow for a re-evaluation of the attributions when they change from within the model
(either RasterTileSetModel
or OGC3DTilesModel
).
This could happen because the attribution is loaded alongside the data (which happens in GoogleMapsTileSetModel
),
or because the attribution is included in the tiles and can change while the data is being loaded
(which happens in OGC3DTilesModel
for Google 3D Tiles).
ImprovementLuciadRIA
ImprovementLuciadRIA
RIA-4696
PickController.isPickMultiple(event)
. When this returns true
, PickController.getCandidates
returns multiple candidates under the mouse cursor, as opposed to just the closest or top-most candidate. This allows you
to implement a controller that can deal
with multiple features under the mouse, for example hover multiple features simultaneously or open a pop-up to select one
of the candidates under the mouse.
ImprovementLuciadRIA
RIA-4730
dataType
and samplingMode
parameters
in the WMTSTileSetModelCreateOptions
and WMSTileSetModelCreateOptions
when creating a WMTSTileSetModel
and WMSTileSetModel
using the
createFromCapabilities
and createFromURL
methods.
ImprovementLuciadRIA
OGC3DTilesModelDescriptor
has two new properties hasPointCloud
and hasMesh
.
These new properties allows you to check if your 3DTiles dataset contains a mesh, a point cloud, or both.
ImprovementLuciadRIA
RIA-4755
KMLLayer.drapeTarget
is now writable to allow runtime changes.
ImprovementLuciadRIA
RIA-4049
OrientedBox.contains3DPoint
and OrientedBox.contains3DCoordinates
methods allow you to check whether a specified point is contained within an oriented box.
Bug fixLuciadRIA
RIA-4781
Bug fixLuciadRIA
RIA-3570, RIA-4744
map.getViewToMapTransformation(LocationMode.CLOSEST_SURFACE)
used a fallback to terrain, if no
closest surface was found. It now correctly fails to transform the point if there is no closest surface.
Bug fixLuciadRIA
RIA-4709
It is now possible to override the getFeatureInfoRoot
service URI when creating a
WMSTileSetModel
and WMSImageModel
.
getMapRoot
and getFeatureInfoRoot
are now also available as
instance properties on both models.
version
property is corrected in WMSCapabilities
. It is now of
type WMSVersion
instead of a string.
Bug fixLuciadRIA
RIA-4369
Bug fixLuciadRIA
RIA-3573
ShowBalloonOptions.anchor
when calling Map.showBalloon
.
Please note that ShowBalloonOptions.object
is now deprecated.
Also, the map's default behavior to display a balloon when a user selects a feature with a non-point shape
on a layer with a balloonContentProvider
has changed. Now the balloon is placed exactly
in the clicked position of the selected feature, and before, the balloon was placed at the shape's
focusPoint
.
Bug fixDefense Symbology
RIA-4700
The main geometry type of a number of APP-6A/B Minefield symbols has been changed. These symbols were modeled as polygons, which required the symbol to have at least 3 anchor points to define the symbol's shape. To better align these symbols with the NVG geometry bindings specification, the geometry has now been changed to a point, which requires only a single anchor point to define the symbol's shape. The following symbols are affected by this change:
- 2.X.2.2.1.6.1 "Planned Minefield"
- 2.X.2.2.1.6.2 "Completed Minefield"
- 2.X.2.2.1.6.5 "Antitank (AT) Minefield"
- 2.X.2.2.1.6.6 "Scatterable Mines"
- 2.X.2.2.1.6.7 "Antipersonnel (AP) Minefield Reinforced With Scatterable With Self-Destruct Date-Time-Group"
- 2.X.2.2.1.6.8 "Scatterable Minefield (Antitank Mines) With Self-Destruct Date-Time-Group"
- 2.X.2.2.1.7 "Executed Volcano Minefield"
The MilitarySymbologyPainter
is able to handle both the old shape
(multiple points, defining an area) and the new shape (a single point).
The behaviour for the old shape remains unchanged.
When providing a single point, the corresponding icon will be drawn.
Bug fixDefense Symbology
RIA-4699
The main geometry type of the APP-6A/B symbol 2.X.2.3.1.1.2 "Fire Support Graphics - Fire Support Point - Target - Circular Target" has been changed. This symbol's geometry type was a circle, which required the symbol to have 2 anchor points to define the symbol's shape. The geometry has now been changed to point, which requires only a single anchor point to define the symbol's shape. To better align this symbol with the NVG geometry bindings specification, the geometry has now been changed to a point, which requires only a single anchor point to define the symbol's shape.
The MilitarySymbologyPainter
is able to handle both the old shape
(two points, defining a circle) and the new shape (a single point).
The behaviour for the old shape remains unchanged.
When providing a single point, the corresponding icon will be drawn.
Upgrade considerationLuciadRIA
EditController
and CreateController
no longer update or add features in the model upon de-activation. This is to avoid
accidental updates to the model when swapping controllers. Instead,
EditController
has a new onFinish
hook that is called when the edit operation finishes. CreateController
still uses the onObjectCreated
hook, but it's now called
when creation finishes, instead of when the controller deactivates.
Finishing an edit operation or a creation can also be forced through a new finish
method, which can be called when using a button to immediately apply changes. Note that this method
will not deactivate your controller.
For more information, consult the API documentation of CreateController
and EditController
.
Upgrade considerationLuciadRIA
RIA-4372
CreateController
now activates its edit handles immediately upon activating,
instead of delaying it until the first mouse click or tap. This allows you to use EditHandle
to draw things
(like snap icons) before the first mouse click or tap.
If you already implemented a creation handle, and you're not using one of create handles in the API (PointCreateHandle
, CreateByTemplateHandle
,
BoundsCreateHandle
or PointListCreateHandle
), you'll have to check if
those still work correctly. Specifically, double check if everything is drawn correctly once the controller activates, before
the first click (like a snap icon).
If the created shape is drawn too early, you can disable that drawing by overriding EditHandle.shouldPaintFeature()
.
Upgrade considerationLuciadRIA
CompositeEditHandleConstructorOptions.cascading
has been removed.
You should use the new CascadingEditHandle
class instead.
To switch, replace
new CompositeEditHandle(handles, {cascading: true})
with
new CascadingEditHandle(handles)
.
Upgrade considerationLuciadRIA
zlib
library has been updated to 1.3.1
.
Upgrade considerationLuciadRIA
AttributedTileSet.getAttribution()
has changed.
Previously, it was called multiple times with a single AttributionTileRegion
for a given viewpoint.
Now, it is called once with the entire list of tile regions. This makes it easier for tileset implementations to
fetch attributions asynchronously.
Upgrade considerationLuciadRIA
GoogleImageModel
and GoogleLayer
are being phased out
in favor of the new GoogleMapsTileSetModel
in a RasterTileSetLayer
.
In 2024.0, they are being deprecated. While deprecated, they will remain available in all 2024.0 and 2024.1 releases.
In the next major release, 2025.0, they will be completely removed.
Upgrade considerationLuciadRIA
RIA-4746
PickController.getCandidates()
, or if you're calling it yourself, you should take into account
the new additional multiple
parameter.
Upgrade considerationLuciadRIA
RIA-3707
createFromUrl
and createFromCapabilities
methods of
WMSTileSetModel
and WMSImageModel
will now throw an error if you
request a model with a coordinate reference that is not supported by the WMS server's capabilities. Before this
fix, the factory methods would create a model with a CRS:84 reference if the server did not support the requested
coordinate reference.
Upgrade considerationLuciadRIA
meshoptimizer
library version 0.20
has been added.
This library is used in internal code. No code changes are needed.
Upgrade considerationLuciadRIA
Icon3DStyle.legacyAxis
is now set to false by default. You will need to update the rotations
applied to your 3D icons or explicitly set the legacyAxis
property to true on the styles you
are using. See the documentation of Icon3DStyle
for more information on the axis system
of 3D icons.
Upgrade considerationLuciadRIA
Map
is being phased out in favor of WebGLMap
.
In 2024.0, it is being deprecated. While deprecated, it will still remain available in all 2024.0 and 2024.1 releases.
In the next major release, 2025.0, it will be completely removed.
If you haven't already done so, you should switch to WebGLMap
right now.
To accomplish this, replace
import {Map} from "@luciad/ria/view/Map.js";
const map = new Map(domNode, options);
with
import {WebGLMap} from "@luciad/ria/view/WebGLMap.js";
const map = new WebGLMap(domNode, options);
For more information, check out the
Non-webgl Map end-of-life announcement
.