2023.0.02

ImprovementLuciadCPillar

LCP-652

2023.0

2023.0.01

ImprovementLuciadCPillar

LCP-649

It is now possible to replace the IFeaturePainterIFeaturePainterIFeaturePainter of a FeatureLayerFeatureLayerFeatureLayer by a new feature painter instance. This allows you to change the styling for all features in the layer.

Note: There is currently the limitation that the detail levels of the new IFeaturePainterIFeaturePainterIFeaturePainter must be the same as those of the previous feature painter.

ImprovementLuciadCPillar

LCP-614
The GdalModelDecoderGdalModelDecoderGdalModelDecoder now can read single band GeoTIFF floats or signed integers files for which a mask image is used to indicate the 'no data' values.

ImprovementLuciadCPillar

When parsing WKT strings, CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider now supports compound references with an ellipsoidal vertical datum: VERT_DATUM tag with value 2002 (ellipsoid).

ImprovementLuciadCPillar

When parsing WKT strings, CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider now recognizes "North American 1983 CSRS", "North American Datum 1983 CSRS" and variants as aliases for the "NAD83 Canadian Spatial Reference System" geodetic datum name.

ImprovementLuciadCPillar

CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider now additionally supported the following datums, and coordinate references that make use of it:
  • Korean Datum 1985
  • Macao 1920

Bug fixLuciadCPillar

LCP-644
Fix a rare crash that could occur in a background thread when painting a feature layer using labels.

Bug fixLuciadCPillar

LCP-636
Fix for possible crash when many icons are shown for the first time simultaneously.

Bug fixLuciadCPillar

LCP-642
Fixed a very rare crash that could occur in the rendering pipeline when adding features to a model.

Bug fixLuciadCPillar

LCP-593

Since the 2022.0 release, QQuickMapObject and QQuickMapRenderer didn't allow creating multiple maps anymore. This is now possible again.

When you have copies of these classes, you can fix this issue by copying the new versions of these classes from the LuciadCPillar sample code to your application.

Bug fixLuciadCPillar

Some of the EPSG references parsed by CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider had incorrect projection parameters. This affected references where the EPSG database defines parameters in a different unit than meters or degrees:
  • EPSG:3359
  • EPSG:22391 and EPSG:22392
  • EPSG:22780
  • EPSG:26191 to EPSG:26195
  • EPSG:26814 and EPSG:26815
  • EPSG:26819 to EPSG:26822
  • EPSG:26825 and EPSG:26826
  • EPSG:26830 to EPSG:26833
  • EPSG:26836 and EPSG:26837
  • EPSG:26841 to EPSG:26844
  • EPSG:30491 and EPSG:30492
  • EPSG:30791 and EPSG:30792

Bug fixLuciadCPillar

LCP-612
Surfaces that are often updated sometimes disappear or change styling for a couple of frames.

Bug fixLuciadCPillar

LCP-615
When painting a feature with multiple sub-parts by using multiple FeatureCanvasFeatureCanvasFeatureCanvas draw methods, the Map::queryFeaturesMap::queryFeaturesMap::queryFeatures method would not always return the top-most feature.

Bug fixLuciadCPillar

LCP-609
AmbientOcclusionEffectAmbientOcclusionEffectAmbientOcclusionEffect: The ambient occlusion effect was sometimes incorrectly applied on icons.

Bug fixLuciadCPillar

Fixed a rare exception that could happen while editing a polyline or polyline ring and removing a point from it.

Bug fixLuciadCPillar

LCP-172, LCP-607
While inserting a new point in a polyline or polyline ring, one of the new segments didn't immediately show a new insert handle. This was fixed in:
  • PolylineHandlesProvider
  • PolylineRingHandlesProvider

Bug fixLuciadCPillar

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

Bug fixLuciadCPillar

LCP-588
Draped geometries that are defined in a reference with a geodetic datum different from WGS84 were not painted at the correct location or altitude.

Bug fixLuciadCPillar

LCP-594
Fixed a crash in debug mode when adding an on path label to a line segment that only contains the same points, or that falls completely outside the map's projection boundary.

Bug fixLuciadCPillar

LCP-577
Fix for an issue where GeoPackage raster files with tile matrix sets starting with a zoom level greater than zero were not visualized correctly.

2023.0

New featureLuciadCPillar

LuciadCPillar now allows you to create an IIconIIconIIcon from a MilitarySymbolMilitarySymbolMilitarySymbol. This is particularly useful if you want to get the military symbol as an ImageImageImage. Please refer to the API documentation of MilitarySymbol::toIconMilitarySymbol::toIconMilitarySymbol::toIcon for more information.

New featureLuciadCPillar

LCP-384
It is now possible to get a Map::HeightProviderMap::HeightProviderMap::HeightProvider directly from the map to query elevation across all the visible elevation layers for a given pixel. See related article on the map height provider for more information.

New featureLuciadCPillar

The GdalModelDecoderGdalModelDecoderGdalModelDecoder now supports decoding single band GeoTIFF files using either 32-bit floats or signed integers. Such GeoTIFF data files are interpreted as elevation data.

New featureLuciadCPillar

LuciadCPillar now allows you to retrieve height data from an elevation raster model using the new RasterModelHeightProviderRasterModelHeightProviderRasterModelHeightProvider class. See related article on how to get height data from a raster model for more information.

New featureLuciadCPillar

LCP-35
LuciadCPillar's support for visualizing elevation data has improved significantly:
  • The Map can now correctly visualize non-world covering elevation data sets correctly. In previous versions it clips away all other data outside the extents of the elevation data set. This is not the case anymore: all data outside the elevation data's extent is now painted at elevation 0.
  • The map can now visualize multiple elevation data sets at the same time. In previous versions only the top-most elevation layer is used to generate terrain. Now all layers that contain elevation data are used to generate terrain.
See related article on elevation data for more information.

New featureLuciadCPillar

LuciadCPillar now supports the DTED (Digital Terrain Elevation Data) format. This enables users to decode DTED / DMED (Digital Mean Elevation Data) files and DTED folders and display them efficiently in a LuciadCPillar map. For more details, see:

New featureLuciadCPillar

LuciadCPillar now provides high-level client interfaces to HTTP. The main classes defined are: You can now adapt the HTTP requests sent when fetching resources from web services according to your needs. This is possible either by creating a custom IHttpClientIHttpClientIHttpClient and plugging it into the model decoder options, or by directly using the HttpClientHttpClientHttpClient class after having properly configured it. More information can be found in the article how to customize HTTP requests when loading data. Custom HTTP data loading is supported by the following decoders:

ImprovementLuciadCPillar

LCP-583
The constructors and factory methods of some classes now throw an exception when a NaN or infinity value is passed as argument. This will avoid problems later on when LuciadCPillar uses these classes.

ImprovementLuciadCPillar

Improved support for Adaptive Point Size for HSPC point clouds (see PointCloudStyle::Builder::pointSizeAdaptivePointCloudStyle::Builder::pointSizeAdaptivePointCloudStyle::Builder::pointSizeAdaptive). Adaptive point size is now the recommended setting for all point clouds.

ImprovementLuciadCPillar

LCP-551
The installation instructions for windows have been updated for using Visual Studio 2022.

ImprovementLuciadCPillar

LCP-258
Added documentation to method Map::ViewMapTransformation::mapToViewMap::ViewMapTransformation::mapToViewMap::ViewMapTransformation::mapToView on when an exception can be thrown by the method.

ImprovementLuciadCPillar

The MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder now allows to create levels for which the top-left corner to the level bounds is not the same for all levels.

ImprovementLuciadCPillar

The OGC WMTS implementation now accepts Tile Matrix Sets for which the top-left corner is not the same for every Tile Matrix.

ImprovementLuciadCPillar

LCP-386
GeoPackageModelDecoderGeoPackageModelDecoderGeoPackageModelDecoder now correctly sets a no-data value for elevation models, allowing the Map to detect locations where no elevation is available.

ImprovementLuciadCPillar

It is now possible to specify a no-data elevation value in MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder and QuadTreeRasterModelBuilderQuadTreeRasterModelBuilderQuadTreeRasterModelBuilder. This no-data value can be used to specify that no elevation data is available at certain sample locations.

Bug fixLuciadCPillar

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

Bug fixLuciadCPillar

LCP-342
The IIcon::createPainterIIcon::createPainterIIcon::createPainter method is now called less often by the MapMapMap. This is especially beneficial when using the LabelDrawCommand::text method. When used for features that change very often, this could result in degraded update performance.

Upgrade considerationLuciadCPillar

The versions of the Android Jetpack libraries the LuciadCPilar Android samples depend on have been updated. This has no effect on the use of the LuciadCPillar API.

Upgrade considerationLuciadCPillar

The minimum supported Android API level by LuciadCPillar is now 29. For more information about evolution in supported API Level, please refer to the System Requirements documentation.

Upgrade considerationLuciadCPillar

Linux distributions using the old ABI are no longer supported by LuciadCPillar. This means that you can no longer develop and deploy LuciadCPillar on RHEL 7 or CentOS 7. Note that RHEL 8 and up use the new ABI and are supported.

Upgrade considerationLuciadCPillar

The MouseCursor::Default and Priority::Default constants were renamed to MouseCursor::DefaultCursor and Priority::Normal.