2024.1.02

ImprovementLuciadCPillar

LCP-665
It is now possible to call Feature::getValueFeature::getValueFeature::getValue with a more specific geometry type as type parameter.

Bug fixLuciadCPillar

LCP-938
Fixed an issue where RelativePosition.southWest would anchor labels from the bottom right instead of the top right.

2024.1

2024.1.01

ImprovementLuciadCPillar

LCP-932

ImprovementLuciadCPillar

LCP-935
Improved the hashCode and equals implementations of many classes (for example MapMapMap) in the API.

ImprovementLuciadCPillar

LCP-935
Improved the GetHashCode and Equals implementations of many classes (for example MapMapMap) in the API.

Bug fixLuciadCPillar

LCP-934
In rare cases, Map::Renderer::paintMap::Renderer::paintMap::Renderer::paint could return false (meaning the rendering is not complete yet) while it should return true.

Bug fixLuciadCPillar

LCP-682, LCP-554
Fixed an issue where icons with an orientation would point to an incorrect direction in 3D.

Bug fixLuciadCPillar

LCP-913
Fixed an issue where parts of icons were missing if the property overrideColor in MilitarySymbolStyleMilitarySymbolStyleMilitarySymbolStyle is set.

Bug fixLuciadCPillar

LCP-925
Fixed an issue where overrideColor in MilitarySymbolStyleMilitarySymbolStyleMilitarySymbolStyle was not taken in account for parts of Military Icons.

Bug fixLuciadCPillar

LCP-924
Fixed an issue where disabling fill through fillEnabled in MilitarySymbolStyleMilitarySymbolStyleMilitarySymbolStyle did not yield the expected result.

Bug fixLuciadCPillar

LCP-922
GeoPackage files that are missing the gpkg_geometry_columns table can now still be opened.

2024.1

New featureLuciadCPillar

Added support for loading custom fonts using Fonts::registerFontFonts::registerFontFonts::registerFont. Please refer to the fonts article for more information.

New featureLuciadCPillar

You can now see if a layer or a map is busy (e.g. when a layer is loading data, or a map has ongoing animations) by querying the Layer::isBusyLayer::isBusyLayer::isBusy and Map::isBusyMap::isBusyMap::isBusy methods. ILayerObserverILayerObserverILayerObserver and IMapObserverIMapObserverIMapObserver allow you to monitor changes to the busy property. To demonstrate this, the samples now have a busy spinner icon in the layer list that is visible whenever the layer is busy.

New featureLuciadCPillar

LCP-869

New featureLuciadCPillar

The pixel format Rgba32, comprising 4 channels of floating-point values, has been added to the list of available pixel formats in PixelFormatPixelFormatPixelFormat.

New featureLuciadCPillar

It is now possible to style feature data using density map styling by configuring DensitySettingsDensitySettingsDensitySettings on the FeatureLayerFeatureLayerFeatureLayer. Please refer to the density painting article for more information. Also see the "Tracks" sample for an example.

New featureLuciadCPillar

The BezierCurveBezierCurveBezierCurve geometry now also supports cubic interpolation. A Bézier curve can now be created by on of these methods:

You can make the distinction between both using the new BezierCurve::getControlPointCountBezierCurve::getControlPointCountBezierCurve::getControlPointCount function. Also, the editing sample demonstrates how to create and edit a CubicBezierCurve.

ImprovementLuciadCPillar

LCP-883
MilitarySymbolMilitarySymbolMilitarySymbol has a new method getValueMaximumLength that returns the maximum length allowed when invoking MilitarySymbol::putValueMilitarySymbol::putValueMilitarySymbol::putValue.

ImprovementLuciadCPillar

LuciadCPillar now supports the following features of the OGC 3D Tiles specification version 1.1:
  • EXT_mesh_gpu_instancing
  • EXT_structural_metadata
  • loading of point clouds from GLB files
. In EXT_structural_metadata, Property Textures and Multiple Feature IDs are not supported. See Ogc3DTilesModelDecoderOgc3DTilesModelDecoderOgc3DTilesModelDecoder class documentation for a more thorough list of supported features.

ImprovementLuciadCPillar

LCP-884
MbTiles with non 256x256px tiles are now properly supported. A new decoder options has been added to specify the tile size. See MbTilesModelDecoderOptions::Builder::tileSizeMbTilesModelDecoderOptions::Builder::tileSizeMbTilesModelDecoderOptions::Builder::tileSize for more information.

ImprovementLuciadCPillar

LCP-885
It is now possible to decode and visualize MBTiles containing elevation data. Please refer to the Working with MBTiles data article for more information.

ImprovementLuciadCPillar

LCP-261
The currently visible bounds on the map can now be retrieved from the map with Map::getMapBoundsMap::getMapBoundsMap::getMapBounds.

ImprovementLuciadCPillar

LCP-120
The map's current scale can now be retrieved from the Map with Map::getMapScaleMap::getMapScaleMap::getMapScale.

ImprovementLuciadCPillar

LCP-754
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider now also has support for WKT strings that describe a topocentric reference.

Bug fixLuciadCPillar

FeatureLayerFeatureLayerFeatureLayer didn't always display all features under the following conditions:

Bug fixLuciadCPillar

LCP-708
Editing 3D (geocentric or topocentric) geometries didn't work correctly when using the default handles providers in the editing API. These handles providers now don't allow editing such geometries anymore.

Bug fixLuciadCPillar

Upgrade considerationLuciadCPillar

In light of the new support for cubic Bézier curves, the following incompatible API changes were made:

Upgrade considerationLuciadCPillar

The harfbuzz library has been updated to version 8.3.

Upgrade considerationLuciadCPillar

The following Nuget Packages used by the C# samples were updated:
  • System.Text.Json was updated to version 8.0.5
  • NLog was updated to version 5.3.4
No changes are required.

Upgrade considerationLuciadCPillar

LayerLayerLayers and LayerListLayerListLayerLists can only be attached to a single MapMapMap at a time. Directly, as a LayerList on a Map, or indirectly, as the LayerList of a IControllerIControllerIController on a map. The underlying model can be used by multiple layers, so if you previously had a layer on multiple maps, you now have to make multiple layers instead.