This page shows the release notes of older versions up until the point that the new version was released. For a full list of release notes of an old version, consult the documentation of that version.
For example if you want to see what is fixed in each 2019.1.x patch release, consult the release notes in the documentation of the 2019.1 release.
2024.0
2024.0.08
ImprovementLuciadCPillar
LCP-910
FeaturePainterContext::is3DFeaturePainterContext::is3DFeaturePainterContext::is3D
to allow an IFeaturePainterIFeaturePainterIFeaturePainter
to check
whether the map it's painting on is 3D.
Bug fixLuciadCPillar
LCP-901
Bug fixLuciadCPillar
LCP-886
RasterLayerRasterLayerRasterLayer
fixed a bug that would trigger an error for multi-level raster models that have
many tiles at level 0.
Bug fixLuciadCPillar
LCP-905
Bug fixLuciadCPillar
LCP-900
Bug fixLuciadCPillar
LCP-899
MilitarySymbolMilitarySymbolMilitarySymbol
that is styled with an
overrideColor
would sometimes be rendered using the affiliation color and vice versa.
Upgrade considerationLuciadCPillar
LCP-908
libtiff
library has been updated to version 4.7.0
.
2024.0.07
Bug fixLuciadCPillar
LCP-893
Bug fixLuciadCPillar
LCP-894
Upgrade considerationLuciadCPillar
LCP-896
libcurl
library has been updated to version 8.10.1
.
2024.0.06
ImprovementLuciadCPillar
LCP-882
Bug fixLuciadCPillar
LCP-890
Bug fixLuciadCPillar
LCP-888
IFeatureModelIFeatureModelIFeatureModel
s that resulted in a crash. This issue
could occur when querying (features or bounds) and persisting changes at the same time on different threads.
2024.0.05
ImprovementLuciadCPillar
LCP-881
ModifierType::DateTime
.
ImprovementLuciadCPillar
LCP-870
MilitarySymbolMilitarySymbolMilitarySymbol
has a new method getModifierType
that returns the ModifierType
of the given modifier.
Bug fixLuciadCPillar
LCP-879
Bug fixLuciadCPillar
LCP-877
MilitarySymbologyCanvasMilitarySymbologyCanvasMilitarySymbologyCanvas
: corrected misaligned military icons on 3D maps. This issue specifically affects icons that are not centered.
Bug fixLuciadCPillar
LCP-866
Bug fixLuciadCPillar
LCP-874
Bug fixLuciadCPillar
LCP-880
MilitarySymbol::copyToFeatureMilitarySymbol::copyToFeatureMilitarySymbol::copyToFeature
would sometimes not reset the Modifier
values.
Bug fixLuciadCPillar
LCP-878
FeatureState::getValueFeatureState::getValueFeatureState::getValue
would throw an exception in C# and Android.
2024.0.04
ImprovementLuciadCPillar
LCP-862
Added support for editing PolygonPolygonPolygon
instances using the EditorEditorEditor
class.
This is done using the new PolygonHandlesProviderPolygonHandlesProviderPolygonHandlesProvider
class. Editing polygons works out of
the box: this new handles provider is used by default by FeatureHandlesProviderFeatureHandlesProviderFeatureHandlesProvider
and
CompositeGeometryHandlesProviderCompositeGeometryHandlesProviderCompositeGeometryHandlesProvider
.
In addition to this functionality, a few utilities where added to modify and handle
PolygonPolygonPolygon
instances:
ObservablePolygonUtilObservablePolygonUtilObservablePolygonUtil
Polygon::replaceExteriorRingPolygon::replaceExteriorRingPolygon::replaceExteriorRing
Polygon::replaceInteriorRingPolygon::replaceInteriorRingPolygon::replaceInteriorRing
Polygon::appendInteriorRingPolygon::appendInteriorRingPolygon::appendInteriorRing
Polygon::removeInteriorRingPolygon::removeInteriorRingPolygon::removeInteriorRing
Bug fixLuciadCPillar
LCP-861
Bug fixLuciadCPillar
LCP-826
Bug fixLuciadCPillar
LCP-834
Bug fixLuciadCPillar
LCP-835
IFeatureModelIFeatureModelIFeatureModel
on a FeatureLayerFeatureLayerFeatureLayer
with FeatureLayerLoadingStrategyFeatureLayerLoadingStrategyFeatureLayerLoadingStrategy
LoadSpatially
.
Bug fixLuciadCPillar
LCP-864
Bug fixLuciadCPillar
LCP-861
PathLabelPosition::PortPathLabelPosition::PortPathLabelPosition::Port
/PathLabelPosition::StarboardPathLabelPosition::StarboardPathLabelPosition::Starboard
would not be placed properly in 3D.
Bug fixLuciadCPillar
LCP-832
PolylineCreatorPolylineCreatorPolylineCreator
and PolylineRingCreatorPolylineRingCreatorPolylineRingCreator
consumed
mouse move events, even before the first point was created.
Bug fixLuciadCPillar
LCP-859
PointEditHandle::addOnTouchLongPressActionPointEditHandle::addOnTouchLongPressActionPointEditHandle::addOnTouchLongPressAction
only worked when adding a mouse
(drag or click) action as well. It now also works when only a touch long press action is added.
2024.0.03
ImprovementLuciadCPillar
LCP-831
Bug fixLuciadCPillar
LCP-857
MgrsFormat::parseMgrsFormat::parseMgrsFormat::parse
would crash for certain invalid MGRS strings.
Upgrade considerationLuciadCPillar
LCP-827
abseil
. This new dependency requires no code
changes.
2024.0.02
ImprovementLuciadCPillar
LCP-821
mipmapFiltering
method of a MeshStyle::BuilderMeshStyle::BuilderMeshStyle::Builder
.
ImprovementLuciadCPillar
LCP-801
MapMapMap
. These are used to reduce the amount
of cached data of a layer or reduce the quality of some layers when the overall memory consumption of the MapMapMap
.
reaches the limits of the memory hints. If warnings are being logged about quality reduction
in your application, you can now increase the values for the memory hints via Map::Builder::maxMemoryUsageHintMap::Builder::maxMemoryUsageHintMap::Builder::maxMemoryUsageHint
.
Bug fixLuciadCPillar
LCP-817
Bug fixLuciadCPillar
LCP-823
Bug fixLuciadCPillar
LCP-822
SelectEventHandlerSelectEventHandlerSelectEventHandler
, HoverEventHandlerHoverEventHandlerHoverEventHandler
and EditorEditorEditor
didn't work correctly for layers that were added to the Map's IControllerIControllerIController
.
Bug fixLuciadCPillar
LCP-815
Bug fixLuciadCPillar
LCP-829
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
incorrectly parsed a few EPSG codes.
Coordinate references using the following datums are affected:
- IG05/12 Intermediate Datum (EPSG:1144)
- World Geodetic System 1984 (G730) (EPSG:1152)
- World Geodetic System 1984 (Transit) (EPSG:1166)
- CR-SIRGAS (EPSG:1225)
- Sistem Referensi Geospasial Indonesia 2013 (EPSG:1293)
- International Terrestrial Reference Frame 1992 (EPSG:6651)
Bug fixLuciadCPillar
LCP-825
FeatureLayerFeatureLayerFeatureLayer
: Fixed an issue where vertical polygons would not always be filled correctly.
Bug fixLuciadCPillar
LCP-824
Polyline::ComputePoint
could return CoordinateCoordinateCoordinate
s
with NaN values if the polyline had a 2D length of 0 while consisting of multiple points.
Upgrade considerationLuciadCPillar
LCP-820
2024.0.01
ImprovementLuciadCPillar
LCP-794
ImprovementLuciadCPillar
LCP-785
ImprovementLuciadCPillar
LCP-778, LCP-783
Bug fixLuciadCPillar
LCP-809
Bug fixLuciadCPillar
LCP-811
Bug fixLuciadCPillar
LCP-804
Bug fixLuciadCPillar
LCP-796
Bug fixLuciadCPillar
LCP-795
Bug fixLuciadCPillar
LCP-784
Bug fixLuciadCPillar
LCP-789
FeatureLayerFeatureLayerFeatureLayer
that could occur for feature data that is
continuously updated. This could lead to a crash.
Bug fixLuciadCPillar
FeatureLayerFeatureLayerFeatureLayer
.
Bug fixLuciadCPillar
LCP-788
Bug fixLuciadCPillar
LCP-805, LCP-806
OnPathLabelStyle::relativeLocation
would sometimes have a
jittery orientation.
2024.0
New featureLuciadCPillar
- 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 featureLuciadCPillar
- The MBTiles Developer's Guide.
- The reference documentation of
MbTilesModelDecoderMbTilesModelDecoderMbTilesModelDecoder
on how to decode MBTiles.
New featureLuciadCPillar
New featureLuciadCPillar
New featureLuciadCPillar
RasterLayerType::BackgroundRasterLayerType::BackgroundRasterLayerType::Background
layers.RasterLayerType::InteractiveRasterLayerType::InteractiveRasterLayerType::Interactive
layers.
RasterLayerTypeRasterLayerTypeRasterLayerType
through the RasterLayer::BuilderRasterLayer::BuilderRasterLayer::Builder
class.
The default raster layer type is RasterLayerType::BackgroundRasterLayerType::BackgroundRasterLayerType::Background
.
For more information, please read the RasterLayerTypeRasterLayerTypeRasterLayerType
API documentation
and the Interacting with raster layers article.
New featureLuciadCPillar
IMultilevelTiledAttributionProviderIMultilevelTiledAttributionProviderIMultilevelTiledAttributionProvider
. Additionally, all
attributions on a map can now be retrieved via its MapAttributionsMapAttributionsMapAttributions
.
This feature is demonstrated for HERE Maps and MBTiles in the 'Dataformats' sample.
For more information, please refer to the attribution
article.
ImprovementLuciadCPillar
ImprovementLuciadCPillar
ImprovementLuciadCPillar
ImprovementLuciadCPillar
- KHR_texture_transform
- KHR_mesh_quantization
- EXT_meshopt_compression
ImprovementLuciadCPillar
LCP-713
Map::HeightProvider::retrieveHeightAtMap::HeightProvider::retrieveHeightAtMap::HeightProvider::retrieveHeightAt
method has been added.
It is now possible to query the map for elevation values at a provided point on the map and at provided pixel density.
For more information, please read the Map::HeightProvider::retrieveHeightAtMap::HeightProvider::retrieveHeightAtMap::HeightProvider::retrieveHeightAt
API documentation
and the updated How to get height data from the map article.
Bug fixLuciadCPillar
LCP-703
1.1.1
after the canceled authentication for WMS 1.3.0
.
Upgrade considerationLuciadCPillar
libcurl
: updated to version8.6.0
openssl
: updated to version3.1.2
zlib
: updated to version1.3.1
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
freetype
library has been updated to version 2.13.2
.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
libwebp
to support the WebP format.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
meshoptimizer
library.
Upgrade considerationLuciadCPillar
protobuf
library.
2023.1
2023.1.06
Bug fixLuciadCPillar
LCP-779
IconDrawCommand::scale
,
IconDrawCommand::size
and/or TextDrawCommand::scale
options.
2023.1.05
ImprovementLuciadCPillar
LCP-771
ImprovementLuciadCPillar
LCP-770
Bug fixLuciadCPillar
LCP-777
MouseGestureRecognizerMouseGestureRecognizerMouseGestureRecognizer
when 2 consecutive mouse pressed events using the
same mouse button arrive. This could only happen in rare circumstances, for example when using Alt-Tab or
when another window steals focus.
Bug fixLuciadCPillar
LCP-773, LCP-716
FeatureLayerFeatureLayerFeatureLayer
: fixed an issue that could, in rare cases, cause a crash of the application.
Bug fixLuciadCPillar
LCP-767
Bug fixLuciadCPillar
LCP-757
FeatureLayerFeatureLayerFeatureLayer
: Fixed an issue where transparent lines would not have a consistent color in
sharp corners or where they overlap themselves.
Bug fixLuciadCPillar
LCP-766
2023.1.04
Bug fixLuciadCPillar
LCP-763
Bug fixLuciadCPillar
LCP-760
Bug fixLuciadCPillar
LCP-745
Bug fixLuciadCPillar
LCP-759
Bug fixLuciadCPillar
LCP-758
GdalModelDecoderGdalModelDecoderGdalModelDecoder
could return a model with a reference with an ellipsoid
equidistant cylindrical projection instead of a spherical equidistant cylindrical projection.
Upgrade considerationLuciadCPillar
libbacktrace
library has been updated to version 20210118
.
2023.1.03
Bug fixLuciadCPillar
LCP-756
Bug fixLuciadCPillar
LCP-749
2023.1.02
ImprovementLuciadCPillar
LCP-752
ObservableObservableObservable
class can now be used with all geometry types instead of only a subset.
ImprovementLuciadCPillar
LCP-752
ObservableGeometryUtilObservableGeometryUtilObservableGeometryUtil
class now has methods to derive observables for all geometry types.
The ObservableBezierCurveUtilObservableBezierCurveUtilObservableBezierCurveUtil
was also added. This class can derive observable instance
for each point that defines a bezier curve.
ImprovementLuciadCPillar
LCP-742
ImprovementLuciadCPillar
LCP-635, LCP-613
Bug fixLuciadCPillar
LCP-721
MgrsGridSetting::Builder::labelStyleMgrsGridSetting::Builder::labelStyleMgrsGridSetting::Builder::labelStyle
has been made consistent with
the styling of the default grid: it now uses a black halo by default instead of no halo.
Bug fixLuciadCPillar
LCP-717
Bug fixLuciadCPillar
LCP-748
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
is now more flexible in
accepting parameter names for the projection center.
Bug fixLuciadCPillar
LCP-736
Bug fixLuciadCPillar
Upgrade considerationLuciadCPillar
LCP-710, LCP-712
A couple of methods now use double values instead of integer values:
Map::resizeMap::resizeMap::resize
Map::getWidthMap::getWidthMap::getWidth
andMap::getHeightMap::getHeightMap::getHeight
Camera::getWidthCamera::getWidthCamera::getWidth
andCamera::getHeightCamera::getHeightCamera::getHeight
This was done to avoid precision loss due to rounding errors. In rare cases, this precision loss could lead to incorrect behavior like:
- map-wide jittering effects
- a (small) black border at the side of the map
- the map content being stretched out very slightly
Upgrade considerationLuciadCPillar
LCP-737
boost
library has been updated to version 1.83.0
.
2023.1.01
ImprovementLuciadCPillar
LCP-729
It is now possible to specify an OcclusionModeOcclusionModeOcclusionMode
when painting geometries and (non-label)
icons or text. This allows you to (partially) show 3D objects that would otherwise be obscured by other 3D
objects. See
FeatureCanvas::GeometryDrawCommand::occlusionModeFeatureCanvas::GeometryDrawCommand::occlusionModeFeatureCanvas::GeometryDrawCommand::occlusionMode
FeatureCanvas::IconDrawCommand::occlusionModeFeatureCanvas::IconDrawCommand::occlusionModeFeatureCanvas::IconDrawCommand::occlusionMode
FeatureCanvas::TextDrawCommand::occlusionModeFeatureCanvas::TextDrawCommand::occlusionModeFeatureCanvas::TextDrawCommand::occlusionMode
ImprovementLuciadCPillar
BASED_ON_DATA
as a new FacetCullingTypeFacetCullingTypeFacetCullingType
when you are styling mesh data
for a TileSet3DLayerTileSet3DLayerTileSet3DLayer
. You can use it if you
are unsure about the face culling type or if you are using a 3D Tiles set that uses GLTF version 2, or if you are mixing
double-sided and non-double-sided material.
ImprovementLuciadCPillar
LCP-701
The precision of WKT and EPSG references that use an ellipsoidal version of the Lambert azimuthal equal area projection has been improved. This affects the following EPSG codes:
- 3035
- 3571 to 3576
- 5633, 5635, 5636, 5638
- 6931, 6932
- 9039
- 9947
Bug fixLuciadCPillar
LCP-716
FeatureLayerFeatureLayerFeatureLayer
: fixed an issue that could cause a double free error on application exit when
lines are visualized on the map.
Bug fixLuciadCPillar
LCP-718
IFeatureModelIFeatureModelIFeatureModel
s persistenceManager::getChanges
now gives
the actual changes instead of an empty list.
Bug fixLuciadCPillar
LCP-660
The C# WinForms and WPF integration code has been improved to more easily support scenarios where a Map is removed from the application window, and moved to a different component in that same application window. An example of such a scenario is when the WinForms or WPF Map components are used within a docking UI framework.
Before this improvement, this would either cause crashes or the map component would not paint its Map content anymore.
Bug fixLuciadCPillar
LCP-730
StyleExpressionFactory::casesStyleExpressionFactory::casesStyleExpressionFactory::cases
threw an exception when using it with boolean values.
Bug fixLuciadCPillar
LCP-715
IFeatureModelIFeatureModelIFeatureModel
's observer is called right before or while
a Map::RendererMap::RendererMap::Renderer
is destroyed.
Bug fixLuciadCPillar
LCP-707
Bug fixLuciadCPillar
LCP-706
Upgrade considerationLuciadCPillar
myVRArchive
library. This new dependency requires no code
changes.
2023.1
New featureLuciadCPillar
LonLatGridLonLatGridLonLatGrid
API documentation and
see the LonLat Grid article.
New featureLuciadCPillar
New featureLuciadCPillar
ComplexStrokeLineStyleComplexStrokeLineStyleComplexStrokeLineStyle
API has been added and FeatureCanvas::GeometryDrawCommandFeatureCanvas::GeometryDrawCommandFeatureCanvas::GeometryDrawCommand
has been extended to accept it. Using this, you can stroke a line with repeated patterns and decorations. They can
also be used for editor lines and RasterLayerRasterLayerRasterLayer
outlines.
See ComplexStrokePatternFactoryComplexStrokePatternFactoryComplexStrokePatternFactory
for an overview of available patterns.
See the complex stroke tutorial
for a step-by-step guide.
New featureLuciadCPillar
MgrsFormatMgrsFormatMgrsFormat
has been added which allows to format geodetic points to MGRS UTM/UPS coordinates.
It can also be used to parse MGRS UTM/UPS coordinates to a geodetic point.
See the MGRS Grid article for more information.
New featureLuciadCPillar
It is now possible to create 3D icons from glTF files in LuciadCPillar by using the
FeatureCanvas::drawIcon3DFeatureCanvas::drawIcon3DFeatureCanvas::drawIcon3D
method.
FeatureCanvas::Icon3DDrawCommandFeatureCanvas::Icon3DDrawCommandFeatureCanvas::Icon3DDrawCommand
allows you to set the glTF source file to load as well as other properties
such as transformations: scale, rotation, orientation and translation. As well as color modulation, mesh
position, query-ability of the mesh and a setting to tell if the mesh contains transparent surfaces.
The camera sample demonstrates how to import a glTF file. This information can also be found in the article
Learn how to load and visualize your glTF data.
For information about the limitation of our glTF support in LuciadCPillar please refer to the article
Which glTF version is supported and what are the limitations?.
New featureLuciadCPillar
GeoPackageModelDecoderGeoPackageModelDecoderGeoPackageModelDecoder
the isEditable flag in the GeoPackageModelDecoderOptionsGeoPackageModelDecoderOptionsGeoPackageModelDecoderOptions
needs to be set to true.
To save the changes made to an edited GeoPackage, the IFeatureModelIFeatureModelIFeatureModel
's FeatureModelPersistenceManagerFeatureModelPersistenceManagerFeatureModelPersistenceManager
needs to be used. See the GeoPackage feature editing article for more information.
New featureLuciadCPillar
RasterStyleRasterStyleRasterStyle
class.
Specifically, you can now set:
- The raster
RasterStyle::Builder::opacityRasterStyle::Builder::opacityRasterStyle::Builder::opacity
- The raster
RasterStyle::Builder::brightnessRasterStyle::Builder::brightnessRasterStyle::Builder::brightness
- The raster
RasterStyle::Builder::contrastRasterStyle::Builder::contrastRasterStyle::Builder::contrast
- The raster
RasterStyle::Builder::modulationColorRasterStyle::Builder::modulationColorRasterStyle::Builder::modulationColor
RasterStyleRasterStyleRasterStyle
.
ImprovementLuciadCPillar
FeatureLayerFeatureLayerFeatureLayer
not queryable, see
FeatureLayer::setQueryableFeatureLayer::setQueryableFeatureLayer::setQueryable
. When a layer doesn't have features that can be selected, this
method prevents it from happening for the entire layer. I then also reduces the performance overhead for that
layer in the Map::queryFeaturesMap::queryFeaturesMap::queryFeatures
method.
ImprovementLuciadCPillar
LCP-687
GraphicsEffectsGraphicsEffectsGraphicsEffects
, AtmosphereEffectAtmosphereEffectAtmosphereEffect
for details.
ImprovementLuciadCPillar
MapMapMap
, see Map::addObserverMap::addObserverMap::addObserver
.
ImprovementLuciadCPillar
LuciadCPillar has been upgraded to support .NET standard 2.0. It is now much easier to use the LuciadCPillar C# binary on newer .NET implementations. LuciadCPillar already supported .NET Framework 4.7.2 (or later). It now also supports all .NET Core and .NET versions (5 or later).
Note that building and running the LuciadCPillar C# samples still requires .NET Framework 4.7.2.
ImprovementLuciadCPillar
LCP-659
GdalModelDecoderGdalModelDecoderGdalModelDecoder
now supports GeoTIFF elevation data using unsigned 16-bit integers.
For more information, please read the GdalModelDecoderGdalModelDecoderGdalModelDecoder
API documentation and
see the updated How to load elevation data article.
ImprovementLuciadCPillar
Feature::Builder::resetIdFeature::Builder::resetIdFeature::Builder::resetId
.
This can be useful when needing to remove the id of an existing feature. For example, to let an IFeatureModelUpdaterIFeatureModelUpdaterIFeatureModelUpdater
assign a new id to it.
Bug fixLuciadCPillar
LCP-694
Bug fixLuciadCPillar
LCP-670
Bug fixLuciadCPillar
LCP-630
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
GDAL
library and its dependencies have been updated.
GDAL
: updated to version3.7.0
PROJ
: updated to version9.1.1
json-c
: version0.17
, used byGDAL
libtiff
: version4.5.1
, used byGDAL
nlohmann_json
: version3.11.2
, used byPROJ
Upgrade considerationLuciadCPillar
EditState
of an
IEditHandleIEditHandleIEditHandle
has changed. For this purpose, the IEditHandleIEditHandleIEditHandle
interface has been extended with the IEditHandle::addEditStateObserverIEditHandle::addEditStateObserverIEditHandle::addEditStateObserver
and the
IEditHandle::removeEditStateObserverIEditHandle::removeEditStateObserverIEditHandle::removeEditStateObserver
methods, which must be implemented now.
Upgrade considerationLuciadCPillar
LCP-683
ExpressionFactoryExpressionFactoryExpressionFactory
now supports an expression representing a LIKE
operation. You can find it as ExpressionFactory::likeExpressionFactory::likeExpressionFactory::like
.
As a consequence the
IExpressionVisitorIExpressionVisitorIExpressionVisitor
interface has been extended with the
method IExpressionVisitor::visitLikeIExpressionVisitor::visitLikeIExpressionVisitor::visitLike
which must be implemented now.
Upgrade considerationLuciadCPillar
LineStyleLineStyleLineStyle
, FillStyleFillStyleFillStyle
, MeshStyleMeshStyleMeshStyle
, OnPathLabelStyleOnPathLabelStyleOnPathLabelStyle
,
PinStylePinStylePinStyle
, PointCloudStylePointCloudStylePointCloudStyle
, and TextStyleTextStyleTextStyle
are now
passed as values instead of shared_ptr
s. Setters that used to accept null
values, now accept nullopt
instead.
Upgrade considerationLuciadCPillar
LCP-619
Upgrade considerationLuciadCPillar
LCP-557
OpenSSL
library has been updated to version 3.0.11
.
Upgrade considerationLuciadCPillar
boost
library has been updated to version 1.83.0
.
Upgrade considerationLuciadCPillar
IFeatureModelIFeatureModelIFeatureModel
now has API that allows to save changes to the model using the
getPersistenceManager()
method. See FeatureModelPersistenceManagerFeatureModelPersistenceManagerFeatureModelPersistenceManager
.
This change breaks existing IFeatureModelIFeatureModelIFeatureModel
implementations.
These can be fixed by implementing the new method, and returning null
.
Upgrade considerationLuciadCPillar
AsBitmap
and the FromBitmap
methods on
Luciad.Drawing.Image
were removed from the API to improve compatibility
with multiple .NET versions. A class containing these utility methods was added to the sample code
instead: Common.Drawing.ImageUtils
.
2023.0
2023.0.04
ImprovementLuciadCPillar
LCP-673
ImprovementLuciadCPillar
LCP-686
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now also documents the list of EPSG codes that are not supported.
ImprovementLuciadCPillar
LCP-306
Bug fixLuciadCPillar
LCP-689
Bug fixLuciadCPillar
LCP-685
Map::queryFeaturesMap::queryFeaturesMap::queryFeatures
could temporarily return features of a layer that was already removed from
the Map's LayerListLayerListLayerList
.
Bug fixLuciadCPillar
LCP-674
IFeatureModelIFeatureModelIFeatureModel
with a slow queryBounds
implementation now doesn't impact the framerate
of the MapMapMap
anymore.
Bug fixLuciadCPillar
LCP-677
Bug fixLuciadCPillar
LCP-667
Bug fixLuciadCPillar
LCP-669
FeatureLayerFeatureLayerFeatureLayer
's spatial loading strategy was improved. Previously, certain conditions could cause
excessive memory usage. These conditions include:
- The presence of a
MapScaleMapScaleMapScale
with a small denominator in the layer'sIFeaturePainterIFeaturePainterIFeaturePainter
implementation or in the layer'sFeatureQueryConfigurationFeatureQueryConfigurationFeatureQueryConfiguration
- The presence of a large feature in the layer's
IFeatureModelIFeatureModelIFeatureModel
- A model update of this large feature in the layer's
IFeatureModelIFeatureModelIFeatureModel
- A camera position that is looking towards the horizon (in 3D), or the additional presence of many small features (>50000)
in the
layer's
IFeatureModelIFeatureModelIFeatureModel
, concentrated in a small area.
Bug fixLuciadCPillar
LCP-668
Bug fixLuciadCPillar
LCP-672
Bug fixLuciadCPillar
LCP-656
GeodesyCalculationsGeodesyCalculationsGeodesyCalculations
could return incorrect results when passing a geodesic coordinate with a latitude outside the
[-90.0, 90.0] interval. This also affected how geometries with latitudes outside the [-90.0, 90.0] interval were painted.
This is now fixed.
2023.0.02
ImprovementLuciadCPillar
LCP-652
FeatureLayerFeatureLayerFeatureLayer
.
See FeatureLayer::Builder::loadingStrategyFeatureLayer::Builder::loadingStrategyFeatureLayer::Builder::loadingStrategy
for more information.
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
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
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now supports compound references with an ellipsoidal vertical datum: VERT_DATUM tag with
value 2002 (ellipsoid).
ImprovementLuciadCPillar
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
Bug fixLuciadCPillar
LCP-636
Bug fixLuciadCPillar
LCP-342
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.
Bug fixLuciadCPillar
LCP-642
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
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
Bug fixLuciadCPillar
LCP-615
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
Bug fixLuciadCPillar
LCP-172, LCP-607
- PolylineHandlesProvider
- PolylineRingHandlesProvider
Bug fixLuciadCPillar
LCP-606
Bug fixLuciadCPillar
LCP-588
Bug fixLuciadCPillar
LCP-594
Bug fixLuciadCPillar
LCP-577
2023.0
New featureLuciadCPillar
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
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
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
RasterModelHeightProviderRasterModelHeightProviderRasterModelHeightProvider
class.
See
related article on how to get height data from a raster model for more information.
New featureLuciadCPillar
LCP-35
- 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.
New featureLuciadCPillar
- The DTED Developer's Guide.
- The reference documentation of
DtedModelDecoderDtedModelDecoderDtedModelDecoder
on how to decode DTED.
New featureLuciadCPillar
HttpClientHttpClientHttpClient
HttpRequestHttpRequestHttpRequest
HttpResponseHttpResponseHttpResponse
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
ImprovementLuciadCPillar
PointCloudStyle::Builder::pointSizeAdaptivePointCloudStyle::Builder::pointSizeAdaptivePointCloudStyle::Builder::pointSizeAdaptive
).
Adaptive point size is now the recommended setting for all point clouds.
ImprovementLuciadCPillar
LCP-551
ImprovementLuciadCPillar
LCP-258
Map::ViewMapTransformation::mapToViewMap::ViewMapTransformation::mapToViewMap::ViewMapTransformation::mapToView
on when an exception
can be thrown by the method.
ImprovementLuciadCPillar
MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder
now allows to create levels for which the top-left
corner to the level bounds is not the same for all levels.
ImprovementLuciadCPillar
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
MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder
and QuadTreeRasterModelBuilderQuadTreeRasterModelBuilderQuadTreeRasterModelBuilder
. This no-data value can be used to specify that no
elevation data is available at certain sample locations.
Bug fixLuciadCPillar
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
MouseCursor::Default
and Priority::Default
constants were renamed to MouseCursor::DefaultCursor
and
Priority::Normal
.
Upgrade considerationLuciadCPillar
FeatureStateFeatureStateFeatureState
PriorityPriorityPriority
GeoPackageTableMetadataGeoPackageTableMetadataGeoPackageTableMetadata
LayerLayerLayer
FeatureLayerFeatureLayerFeatureLayer
TileSet3DLayerTileSet3DLayerTileSet3DLayer
MouseCursorMouseCursorMouseCursor
KeyCodeKeyCodeKeyCode
MouseButtonMouseButtonMouseButton
ModifierKeysModifierKeysModifierKeys
MapScaleMapScaleMapScale
2022.1
2022.1.08
ImprovementLuciadCPillar
ImprovementLuciadCPillar
LCP-586
Loaded
method.
This could for example happen when integrating the WPF map control within a TabControl
and switching between the tabs.
Bug fixLuciadCPillar
LCP-587
2022.1.07
ImprovementLuciadCPillar
LCP-574
IIconIIconIIcon
on the Map, the ImageImageImage
instances painted by the icon do not have to be
alpha-premultiplied anymore. This applies to the following calls:
FeatureCanvas::IconDrawCommand::iconFeatureCanvas::IconDrawCommand::iconFeatureCanvas::IconDrawCommand::icon
FeatureCanvas::LabelDrawCommand::iconFeatureCanvas::LabelDrawCommand::iconFeatureCanvas::LabelDrawCommand::icon
FillStyle::Builder::iconFillStyle::Builder::iconFillStyle::Builder::icon
ImageImageImage
resulted in an exception while rendering. Now the feature is painted correctly.
Bug fixLuciadCPillar
LCP-573
Bug fixLuciadCPillar
LCP-573, LCP-312
Bug fixLuciadCPillar
LCP-576
Bug fixLuciadCPillar
LCP-575
2022.1.06
Bug fixLuciadCPillar
LCP-569
Bug fixLuciadCPillar
LCP-567
Bug fixLuciadCPillar
2022.1.05
Bug fixLuciadCPillar
LCP-488, LCP-562
MouseGestureRecognizerMouseGestureRecognizerMouseGestureRecognizer
sending
IInputEventIInputEventIInputEvent
instances to its IInputEventCallbackIInputEventCallbackIInputEventCallback
.
2022.1.04
ImprovementLuciadCPillar
LCP-537, LCP-539
FeatureCanvas::IconDrawCommand::scaleFeatureCanvas::IconDrawCommand::scaleFeatureCanvas::IconDrawCommand::scale
FeatureCanvas::IconDrawCommand::sizeFeatureCanvas::IconDrawCommand::sizeFeatureCanvas::IconDrawCommand::size
FeatureCanvas::TextDrawCommand::scaleFeatureCanvas::TextDrawCommand::scaleFeatureCanvas::TextDrawCommand::scale
ImprovementLuciadCPillar
LCP-540
LineStyle::Builder::inMetersLineStyle::Builder::inMetersLineStyle::Builder::inMeters
FeatureCanvas::IconDrawCommand::inMetersFeatureCanvas::IconDrawCommand::inMetersFeatureCanvas::IconDrawCommand::inMeters
FeatureCanvas::TextDrawCommand::inMetersFeatureCanvas::TextDrawCommand::inMetersFeatureCanvas::TextDrawCommand::inMeters
ImprovementLuciadCPillar
LCP-541
FeatureCanvas::drawTextFeatureCanvas::drawTextFeatureCanvas::drawText
.
ImprovementLuciadCPillar
LCP-552
MapNavigator::PanAction::fromViewLocationMapNavigator::PanAction::fromViewLocationMapNavigator::PanAction::fromViewLocation
method was added. This method accepts view coordinates, so it is targeted towards
event-based panning. Additionally, when using this method panning will be more limited when using a point near the horizon.
This is done to prevent the
camera from making very large changes. When using the MapNavigator::PanAction::fromMapNavigator::PanAction::fromMapNavigator::PanAction::from
method, panning is not limited.
Bug fixLuciadCPillar
LCP-542
FeatureCanvasFeatureCanvasFeatureCanvas
: when painting an icon with an orientation and a RelativePositionRelativePositionRelativePosition
, the position's
offsets were not correctly rotated along when rotating the map.
Bug fixLuciadCPillar
LCP-552
MapNavigator::newPanActionMapNavigator::newPanActionMapNavigator::newPanAction
: When panning to a location at a far away distance, the camera would end up somewhere in between
the start and destination of the pan operation instead of on the destination.
Bug fixLuciadCPillar
LCP-549
MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder
when working with non normalized lon-lat bounds
Bug fixLuciadCPillar
LCP-538
2022.1.03
Bug fixLuciadCPillar
LCP-531, LCP-533
RasterLayerRasterLayerRasterLayer
: part of the imagery could be clipped for certain camera positions
when elevation data was loaded.
Bug fixLuciadCPillar
LCP-536
Bug fixLuciadCPillar
LCP-374
2022.1.02
Bug fixLuciadCPillar
LCP-530
ZoomEventHandlerZoomEventHandlerZoomEventHandler
would throw an exception when trying to zoom before the map has been painted.
Bug fixLuciadCPillar
LCP-527
CreatorCreatorCreator
for a layer that is configured with an IFeaturePainterIFeaturePainterIFeaturePainter
that configures
detail level scales, a crash would occur when calling FeaturePainterContext::getDetailLevelFeaturePainterContext::getDetailLevelFeaturePainterContext::getDetailLevel
. This is now fixed.
2022.1.01
ImprovementLuciadCPillar
LCP-512
ImprovementLuciadCPillar
LCP-437
ImprovementLuciadCPillar
LCP-392
ImprovementLuciadCPillar
LCP-437
Bug fixLuciadCPillar
LCP-521
IMultilevelTiledRasterDataRetrieverCallback::onImageAvailableIMultilevelTiledRasterDataRetrieverCallback::onImageAvailableIMultilevelTiledRasterDataRetrieverCallback::onImageAvailable
did not correctly take the alpha pre-multiplication into account.
This resulted in the color to be treated as an opaque color.
Bug fixLuciadCPillar
LCP-89
GeodesyCalculations::distance3DGeodesyCalculations::distance3DGeodesyCalculations::distance3D
method didn't return correct results when using a geodetic reference.
Bug fixLuciadCPillar
LCP-349, LCP-436
Bug fixLuciadCPillar
LCP-442
2022.1
New featureLuciadCPillar
LuciadCPillar for Android allows you to develop GPU accelerated geospatial situational awareness applications targeted to run on Android mobile devices. LuciadCPillar for Android is an SDK that supports both Kotlin and Java development. It is feature equivalent with LuciadCPillar for desktop.
To get started, consult the product documentation and select the Android profile at the top right of the page. The product documentation includes installation guides, a Java API reference and a set of ready-to-run kotlin samples that can be installed on your mobile device from Android studio.
New featureLuciadCPillar
You can now enable GPU texture compression on TileSet3DLayerTileSet3DLayerTileSet3DLayer
for OGC 3D Tiles mesh data.
This can greatly reduce the amount of GPU memory needed, improve performance and stability.
Enable when displaying meshes with large textures, such as reality capture reconstructions. By default, texture
compression is enabled.
Disable when displaying meshes with lookup textures, such as CAD models.
If your environment does not support GPU texture compression, setting the flag has no effect.
New featureLuciadCPillar
GraphicsEffectsGraphicsEffectsGraphicsEffects
, AmbientOcclusionEffectAmbientOcclusionEffectAmbientOcclusionEffect
and
EyeDomeLightingEffectEyeDomeLightingEffectEyeDomeLightingEffect
for details.
When enabled, they are applied on all the data on the map.
New featureLuciadCPillar
GdalModelDecoderGdalModelDecoderGdalModelDecoder
now supports decoding of 8 bit indexed color GeoTIFF data.
New featureLuciadCPillar
MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder
and QuadTreeRasterModelBuilderQuadTreeRasterModelBuilderQuadTreeRasterModelBuilder
classes.
This for example allows you to implement your own raster format, or position a single image on the map.
The article
introduction to raster models
provides more information on these classes.
You can indicate that your custom raster data may change.
To enable this you need to call
MultilevelTiledRasterModelBuilder::enableInvalidationMultilevelTiledRasterModelBuilder::enableInvalidationMultilevelTiledRasterModelBuilder::enableInvalidation
or
QuadTreeRasterModelBuilder::enableInvalidationQuadTreeRasterModelBuilder::enableInvalidationQuadTreeRasterModelBuilder::enableInvalidation
.
This results in the creation of an IRasterModelIRasterModelIRasterModel
which returns true
for the method IRasterModel::canInvalidateIRasterModel::canInvalidateIRasterModel::canInvalidate
and on which you can call
IRasterModel::invalidateIRasterModel::invalidateIRasterModel::invalidate
.
Invalidating the raster instructs LuciadCPillar to reload the data from the model and update the view accordingly.
ImprovementLuciadCPillar
GeometryFactoryGeometryFactoryGeometryFactory
now also has a createPoint method that takes a CoordinateCoordinateCoordinate
as input.
ImprovementLuciadCPillar
ImprovementLuciadCPillar
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
can now parse more WKT strings that do not contain a TOWGS84 in its datum.
ImprovementLuciadCPillar
RasterLayerRasterLayerRasterLayer
now respects the display scale, which results in better performance
on HiDPI screens.
ImprovementLuciadCPillar
LCP-19, LCP-21, LCP-22, LCP-25, LCP-65, LCP-290, LCP-290, LCP-343
- Data starts appearing on the screen up to 10 times faster right after adding a vector layer or after zooming in to a different detail level.
- Data loading throughput is up to 2 times larger.
- Data appears and disappears up to 5-10 times faster while navigating.
- The map's frame rate is higher while vector data is loaded. Navigation now remains smooth at all times during loading.
ImprovementLuciadCPillar
TouchGestureRecognizerTouchGestureRecognizerTouchGestureRecognizer
now more reliably makes the distinction between two-finger touch drag evens and pinch-rotate touch events.
ImprovementLuciadCPillar
Ogc3DTilesModelDecoder::decodeOgc3DTilesModelDecoder::decodeOgc3DTilesModelDecoder::decode
has been overloaded so that you can now configure
Ogc3DTilesModelDecoder::OptionsOgc3DTilesModelDecoder::OptionsOgc3DTilesModelDecoder::Options
for the decoding of OGC 3D tiles data. These options allow
you to configure a custom IDataLoaderIDataLoaderIDataLoader
to fetch the OGC 3D Tiles resources,
in case the default data loading from a server or the file system is not adequate for your use case.
HspcModelDecoder::decodeHspcModelDecoder::decodeHspcModelDecoder::decode
also supports this.
ImprovementLuciadCPillar
LCP-415
projection-wkt
property).
Before, only HSPC references expressed with an EPSG code (projection-epsg
property) were supported.
ImprovementLuciadCPillar
LCP-19, LCP-21, LCP-22, LCP-25, LCP-343
ImprovementLuciadCPillar
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now supports EPSG references based on the IG05/12 Intermediate datum:
- EPSG:6988
- EPSG:6989
- EPSG:6990
- EPSG:6991
ImprovementLuciadCPillar
LCP-75
GeoPackageModelDecoderGeoPackageModelDecoderGeoPackageModelDecoder
: the decoder now supports decoding geometries with an optional
elevation (Z) value.
ImprovementLuciadCPillar
LCP-338
ImprovementLuciadCPillar
Bug fixLuciadCPillar
GdalModelDecoderGdalModelDecoderGdalModelDecoder
: some files would cause a crash while a feature query is performed when no geometry could be found for a feature.
A warning is logged now instead.
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Luciad.Symbology.Military.Standards
and
Luciad.Symbology.MilitarySymbologyNode.SymbolTypes
have been removed from the C# API. In C#, methods to obtain a list of possible values and a string representation
are by convention available on the enumeration type itself.
Bug fixLuciadCPillar
Bug fixLuciadCPillar
LCP-403, LCP-404
Bug fixLuciadCPillar
LCP-431
ScreenInfo
, which created a device context without deleting it afterwards. If you
are using this class in your own application, you will need to copy the new version of this class into your
application as well.
Bug fixLuciadCPillar
LCP-434
Bug fixLuciadCPillar
LCP-408
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Bug fixLuciadCPillar
PointEditHandle::addOnClickActionPointEditHandle::addOnClickActionPointEditHandle::addOnClickAction
allowed the handle to execute actions for TouchLongPressEventTouchLongPressEventTouchLongPressEvent
events.
This has now been fixed. To allow configuring long press actions on a handle, the PointEditHandle::addOnTouchLongPressActionPointEditHandle::addOnTouchLongPressActionPointEditHandle::addOnTouchLongPressAction
method has been added.
Bug fixLuciadCPillar
LCP-400
Bug fixLuciadCPillar
LCP-399
Bug fixLuciadCPillar
LCP-416
RasterLayerRasterLayerRasterLayer
: For some specific camera positions it was possible that parts of the terrain were
missing. This resulted in gaps in the visualization of the terrain and possibly large camera movements when
navigating.
Bug fixLuciadCPillar
Map::getAnimationManagerMap::getAnimationManagerMap::getAnimationManager
. This could for example
lead to the camera jumping to an incorrect location when zooming in and out in quick succession using
MapNavigator::ZoomActionMapNavigator::ZoomActionMapNavigator::ZoomAction
.
Bug fixLuciadCPillar
LCP-418
Bug fixLuciadCPillar
Bug fixLuciadCPillar
MapNavigatorMapNavigatorMapNavigator
that could potentially interrupt ongoing animations,
and in rare cases could lead to a crash.
Bug fixLuciadCPillar
LCP-433
Bug fixLuciadCPillar
LCP-402
Bug fixLuciadCPillar
LCP-423
Upgrade considerationLuciadCPillar
MapNavigator::getAnimationKey
was removed. In order to cancel navigate actions that were initiated by
MapNavigatorMapNavigatorMapNavigator
, you can now use the MapNavigator::cancelMapNavigator::cancelMapNavigator::cancel
method instead. This method
does not only cancel animations, but also other non-animated MapNavigatorMapNavigatorMapNavigator
actions.
Upgrade considerationLuciadCPillar
PanAction::to
and ZoomAction::to
have been renamed to
PanAction::toLocation
and ZoomAction::toLocation
respectively.This prevents a naming clash with the Kotlin
to
infix.
Upgrade considerationLuciadCPillar
libcurl
: updated to version7.86.0
openssl
: updated to version1.1.1s
zlib
: updated to version1.2.13
Upgrade considerationLuciadCPillar
TileSet3DLayerTileSet3DLayerTileSet3DLayer
uses texture compression by default.
This has the advantage that less GPU memory is used.
In case artifacts would be noticeable in textures on a OGC 3D tiles mesh, you can disable texture
compression via TileSet3DLayer::Builder::textureCompressionEnabledTileSet3DLayer::Builder::textureCompressionEnabledTileSet3DLayer::Builder::textureCompressionEnabled
.
Upgrade considerationLuciadCPillar
androidx
namespace).
Upgrade considerationLuciadCPillar
@NotNull
and @Nullable
annotations to the
LuciadCPillar for Android API, so that it is more convenient to use when working in Kotlin.
Upgrade considerationLuciadCPillar
stb
and goofy
libraries in order to
support OGC 3D Tiles texture compression.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
GDAL
library and its dependencies have been updated.
GDAL
: updated to version3.4.3
PROJ
: updated to version9.0.1
SQLite3
: updated to version3.38.5
nlohmann_json
: version3.10.5
, used byPROJ
libgeotiff
: version1.7.1
, used byGDAL
json-c
: version0.15
, used byGDAL
Upgrade considerationLuciadCPillar
Image.Create
factory method taking a byte[]
was removed from the
C# API. The factory method taking a ByteBufferByteBufferByteBuffer
should be used instead.
Upgrade considerationLuciadCPillar
MemoryBuffer
class was removed from the API. Use cases that used to be covered by
MemoryBuffer
are now covered by the new ByteBufferByteBufferByteBuffer
class.
2022.0
2022.0
New featureLuciadCPillar
- The updated articles regarding Interacting with the Map.
- The LuciadCPillar Qt integration Guide.
New featureLuciadCPillar
- The OGC 3D Tiles Developer's Guide.
- The HSPC Developer's Guide.
- The reference documentation of
Ogc3DTilesModelDecoderOgc3DTilesModelDecoderOgc3DTilesModelDecoder
on how to decode OGC 3D Tiles. - The reference documentation of
HspcModelDecoderHspcModelDecoderHspcModelDecoder
on how to decode HSPC (Hexagon Smart Point Cloud) files.
New featureLuciadCPillar
The CPillar map now supports high DPI rendering. This means that fonts, icons and other map elements are automatically resized in proportion to the display scale configured in the operating system. This also means that map scale calculations use the configured DPI to get a correct interpretation.
When integrating the CPillar map in a UI framework the DPI and the display scale must be configured
on the Map::RendererMap::RendererMap::Renderer
.
You can read more on this in the article on
support for high DPI displays.
The article on
integration within Qt
provides details on how this is done for the Qt UI toolkit.
The API allows to provide icons for multiple resolutions such that the CPillar map can use the best applicable
for your screen setup. For this purpose, the IIconIIconIIcon
class was modified to allow painting
an icon in different resolutions.
ImprovementLuciadCPillar
LCP-90
ImprovementLuciadCPillar
MouseCursorMouseCursorMouseCursor
was added to allow hiding the map cursor.
ImprovementLuciadCPillar
ImprovementLuciadCPillar
LCP-214, LCP-216
overrideColor
in MilitarySymbolStyle::BuilderMilitarySymbolStyle::BuilderMilitarySymbolStyle::Builder
.
This can be used to highlight a symbol. The symbology sample now shows how to do this when selecting tactical symbols.
ImprovementLuciadCPillar
Map::queryFeatures
can now be called from the UI thread and passes its result to its callback synchronously.
ImprovementLuciadCPillar
ImprovementLuciadCPillar
PanEventHandlerPanEventHandlerPanEventHandler
or RotateEventHandlerRotateEventHandlerRotateEventHandler
are now returning an EventStatusEventStatusEventStatus
indicating if they consumed the event or not.
ImprovementLuciadCPillar
LCP-55
ImprovementLuciadCPillar
CoordinateReferenceCoordinateReferenceCoordinateReference
instances are equal with respect to
transforming using Transformation::isIdentityTransformation::isIdentityTransformation::isIdentity
. The result of this check is different from
the regular equality operator that can be found on CoordinateReferenceCoordinateReferenceCoordinateReference
: it only uses
the data that is used during transformations, and not at the references metadata.
ImprovementLuciadCPillar
LCP-176
GeoPackageModelDecoderGeoPackageModelDecoderGeoPackageModelDecoder
now supports elevation data encoded as TIFF.
Bug fixLuciadCPillar
CoordinateReferenceCoordinateReferenceCoordinateReference
equality and hash implementations are now implemented more
strictly. Previously these methods used the identifier equality and hash, which could lead to incorrect
false positives.
Upgrade considerationLuciadCPillar
fast_float
library version 3.4.0
has been added.
This library is used to parse floating point values from strings.
Upgrade considerationLuciadCPillar
LCP-361
zlib
library has been updated to v2.1.12
.
Upgrade considerationLuciadCPillar
OpenGL 4.2
instead of OpenGL 4.1
.
Upgrade considerationLuciadCPillar
draco
library.
Upgrade considerationLuciadCPillar
myVRPointCloud
, jcsoncpp
,
pdqsort
, and zstd
to support the Hexagon Smart Point Cloud (HSPC)
format.
Upgrade considerationLuciadCPillar
IIconIIconIIcon
interface was modified to add support for painting the icon in different
resolutions, depending on the display scale of your screen. To this purpose, a new interface was added:
IIconPainterIIconPainterIIconPainter
. The IIcon::toImage
method was replaced by
the new IIcon::createPainterIIcon::createPainterIIcon::createPainter
method. The getWidth, getHeight, getAnchorX and getAnchorY
methods were moved to this new IIconPainterIIconPainterIIconPainter
interface.
Upgrade considerationLuciadCPillar
ObservableXxx
Value property has been replaced by a getter and a setter.
Upgrade considerationLuciadCPillar
Observable<Xxx>
everywhere instead of
ObservableXxx
. This can cause compile errors that can be resolved by referring
to Observable<Xxx>
in the code instead.
Upgrade considerationLuciadCPillar
IInputEventIInputEventIInputEvent
s and in particular, gesture recognition, have been refactored.
See the updated articles regarding interacting with the Map through a controller
and integration within Qt for more information.
-
Mouse input events related types are now declared in the
luciad/input/mouse/MouseEvents.h
header. -
The
GestureRecognizer
class has been replaced by dedicatedMouseGestureRecognizerMouseGestureRecognizerMouseGestureRecognizer
andTouchGestureRecognizerTouchGestureRecognizerTouchGestureRecognizer
classes, which handle mouse based and touch based gestures, respectively. -
The
MouseGestureRecognizerMouseGestureRecognizerMouseGestureRecognizer
can be included through theluciad/input/mouse/MouseGestureRecognizer.h
header. -
The
TouchGestureRecognizerTouchGestureRecognizerTouchGestureRecognizer
can be included through theluciad/input/touch/TouchGestureRecognizer.h
header.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
ms-gsl
.
Upgrade considerationLuciadCPillar
concurrentqueue
library has been updated to v1.0.3.
Upgrade considerationLuciadCPillar
libtiff
to support GeoPackage files
containing TIFF encoded elevation data.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
2021.1
2021.1.05
ImprovementLuciadCPillar
LCD-12276
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now supports WKT strings that contain a "Local" projection
parameter, which corresponds to an orthographic projection.
Bug fixLuciadCPillar
LCP-371, LCP-372
- Well Known Text (WKT) reference
- WMS capabilities
- GeoTIFF
Bug fixLuciadCPillar
LCP-365
Bug fixLuciadCPillar
LCP-352
Bug fixLuciadCPillar
LCP-347
2021.1.04
Bug fixLuciadCPillar
LCP-358
Bug fixLuciadCPillar
LCP-357
Map::IRendererCallbackMap::IRendererCallbackMap::IRendererCallback
in a WinForms application.
Bug fixLuciadCPillar
LCP-350
2021.1.03
ImprovementLuciadCPillar
LCP-343
FeatureLayerFeatureLayerFeatureLayer
now requires less processing time, and that it appears faster on the screen.
Bug fixLuciadCPillar
LCP-346
Bug fixLuciadCPillar
LCP-308
FeatureQueryConfiguration::Builder::loadNothingForNonDefinedScales
flag set
in addition to at least one map scale condition.
2021.1.02
Bug fixLuciadCPillar
LCP-345
KeyNotFoundException
when using the default logging.
2021.1.01
Bug fixLuciadCPillar
LCP-329
Bug fixLuciadCPillar
LCD-12108
CircleByCenterPointCircleByCenterPointCircleByCenterPoint
and CircularArcByCenterPointCircularArcByCenterPointCircularArcByCenterPoint
are now more accurate. Before, the bounds were too small in some cases.
Bug fixLuciadCPillar
LCD-12169
- EPSG:2065
- EPSG:5513
- EPSG:8352
2021.1
New featureLuciadCPillar
CameraCameraCamera
class, and Map::setCameraMap::setCameraMap::setCamera
for more information.
ImprovementLuciadCPillar
LCP-333
image/png
but in fact returns a JPEG image this is detected.
A warning is logged about the inconsistency but the image is loaded for visualization.
ImprovementLuciadCPillar
LCP-323
ImprovementLuciadCPillar
LCP-314
Map::setBackgroundColorMap::setBackgroundColorMap::setBackgroundColor
method was added.
The background color is used if no imagery layers are present (3D and 2D).
In 3D, the background color is also used for the space.
ImprovementLuciadCPillar
LCP-317
MapNavigator::RotateActionMapNavigator::RotateActionMapNavigator::RotateAction
only had methods to set delta values for the camera rotation. It
is now also possible to set target values for the camera rotation. This means that you can now specify the rotations
the camera will have at the end of the rotate action.
ImprovementLuciadCPillar
LCP-200
ImprovementLuciadCPillar
Map::Renderer::projectPointOnTerrainMap::Renderer::projectPointOnTerrainMap::Renderer::projectPointOnTerrain
method was added. This method calculates a point on
the terrain or ellipsoid, perpendicular to a given coordinate. It can for example be used to implement your own
above terrain camera constraint.
ImprovementLuciadCPillar
MapNavigatorMapNavigatorMapNavigator
now has methods to enable, disable or configure map navigation constraints:
- Above constraint: to keep the camera above the terrain in 3D
- Pitch constraint: to limit the camera tilt in 3D
- Bounds constraint: to keep the camera inside a defined bounds in 2D
- Scale constraint: to prevent the camera from zooming in or out too far in 2D
ImprovementLuciadCPillar
ImprovementLuciadCPillar
EnvironmentEnvironmentEnvironment
after it has been cleaned up.
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Map::ViewMapTransformation::mapToViewMap::ViewMapTransformation::mapToViewMap::ViewMapTransformation::mapToView
could return a nullopt result
when transforming map points with a z-value different from 0. The fix for this bug also fixes a problem during
PolylinePolylinePolyline
editing: when trying to add a point to the start or end of the polyline,
PolylineHandlesProviderPolylineHandlesProviderPolylineHandlesProvider
always chose to add it to the end.
Bug fixLuciadCPillar
LCP-325
Bug fixLuciadCPillar
LCP-315
MapNavigator::ZoomActionMapNavigator::ZoomActionMapNavigator::ZoomAction
is used on some WMS/WMTS layers in 2D.
Bug fixLuciadCPillar
LCP-303
Bug fixLuciadCPillar
LCP-57
Upgrade considerationLuciadCPillar
Qt
5.15.2
.
Upgrade considerationLuciadCPillar
MapNavigator::RotateAction::deltaPitchMapNavigator::RotateAction::deltaPitchMapNavigator::RotateAction::deltaPitch
now accepts a double value instead of an
AngleAngleAngle
. This is more consistent with the rest of the API, and it avoids incorrect
normalization of the passed pitch value.
Upgrade considerationLuciadCPillar
glu
library has been updated to version 1.3+2
.
Upgrade considerationLuciadCPillar
freetype
library has been updated to version 2.10.4
.
Upgrade considerationLuciadCPillar
libpng
library has been updated to version 1.6.37
.
Upgrade considerationLuciadCPillar
curl
library has been updated to version 7.77.0
.
The openssl
library has been updated to version 1.1.1k
.
Upgrade considerationLuciadCPillar
MapNavigator::create
factory method was removed, and replaced by the new
Map::getMapNavigatorMap::getMapNavigatorMap::getMapNavigator
method. The advantage of using a single MapNavigator instance,
is that it can now store configuration, like constraint settings.
Upgrade considerationLuciadCPillar
spdlog
library, used in the samples, has been updated to version
1.9.2
.
The fmt
library, used by spdlog
has been updated to
version 8.0.1
.
Upgrade considerationLuciadCPillar
libjpeg
library has been updated to version 9d
.
Upgrade considerationLuciadCPillar
expected-lite
library has been updated to version 0.5.0
.
2021.0
2021.0.01
Bug fixLuciadCPillar
LCP-324
GetMap
request needed to use the
CRS EPSG:4326
. The visualization of the WMS layer was wrong.
2021.0
New featureLuciadCPillar
FeatureCanvas::LabelDrawCommand::onPathFeatureCanvas::LabelDrawCommand::onPathFeatureCanvas::LabelDrawCommand::onPath
using an OnPathLabelStyleOnPathLabelStyleOnPathLabelStyle
argument.
ImprovementLuciadCPillar
LCP-282
TextBlockTextBlockTextBlock
with a TextBlock::BuilderTextBlock::BuilderTextBlock::Builder
and forward it to FeatureCanvas::LabelDrawCommand::textFeatureCanvas::LabelDrawCommand::textFeatureCanvas::LabelDrawCommand::text
.
ImprovementLuciadCPillar
LCP-301
Feature.Builder.Value
is now faster.
ImprovementLuciadCPillar
LCP-301
FeatureLayerFeatureLayerFeatureLayer
instances without any labels.
ImprovementLuciadCPillar
FeatureCanvas::LabelDrawCommand::labelGroupFeatureCanvas::LabelDrawCommand::labelGroupFeatureCanvas::LabelDrawCommand::labelGroup
with LabelGroup::NoDeclutterLabelGroup::NoDeclutterLabelGroup::NoDeclutter
as value.
ImprovementLuciadCPillar
LCP-295
ImprovementLuciadCPillar
PathLabelPosition::PortPathLabelPosition::PortPathLabelPosition::Port
and PathLabelPosition::StarboardPathLabelPosition::StarboardPathLabelPosition::Starboard
can be used with both
FeatureCanvas::LabelDrawCommand::onPathFeatureCanvas::LabelDrawCommand::onPathFeatureCanvas::LabelDrawCommand::onPath
methods.
ImprovementLuciadCPillar
LCP-145
Bug fixLuciadCPillar
LCP-302
FeatureCanvas::LabelDrawCommand::anchorDrapedFeatureCanvas::LabelDrawCommand::anchorDrapedFeatureCanvas::LabelDrawCommand::anchorDraped
as true are now displayed correctly on elevated terrain.
Bug fixLuciadCPillar
LCP-299
SelectEventHandlerSelectEventHandlerSelectEventHandler
and HoverEventHandlerHoverEventHandlerHoverEventHandler
's setMargin methods are now correctly taken into account.
Bug fixLuciadCPillar
LCP-297
Bug fixLuciadCPillar
LCP-283
Bug fixLuciadCPillar
LCP-207
Upgrade considerationLuciadCPillar
TextStyleTextStyleTextStyle
class now doesn't contain verticalSpacing and horizontalAlignment properties
anymore. You can now specify these properties in an alternative way:
- directly pass a horizontalAlignment to the
FeatureCanvas::LabelDrawCommand::textFeatureCanvas::LabelDrawCommand::textFeatureCanvas::LabelDrawCommand::text
method that accepts a vector of strings - use the
FeatureCanvas::LabelDrawCommand::textFeatureCanvas::LabelDrawCommand::textFeatureCanvas::LabelDrawCommand::text
method that accepts aTextBlockTextBlockTextBlock
.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
PathLabelPositionPathLabelPositionPathLabelPosition
header file was moved from the luciad/layers/features folder to
the luciad/layers/styles folder. In the C# API, the namespace was changed from from Luciad.Layers.Features to
Luciad.Layers.Styles.
2020.2
2020.2
New featureLuciadCPillar
WmsCapabilitiesWmsCapabilitiesWmsCapabilities
and WmsModelDecoderWmsModelDecoderWmsModelDecoder
is explained
in the article on connecting to a WMS service.
You can use the data formats sample to connect to Web Map Services.
New featureLuciadCPillar
- add labels that are attached a point
- add labels that use the same orientation as the line they are attached to
- add labels inside an area
- labels are decluttered to avoid overlap
- labels are always painted above all the other content on the map
- a pin can be drawn to show where the label is attached to its feature
FeatureCanvas::LabelDrawCommandFeatureCanvas::LabelDrawCommandFeatureCanvas::LabelDrawCommand
for more details.
The labeling functionality is demonstrated in the label sample.
New featureLuciadCPillar
GdalModelDecoderGdalModelDecoderGdalModelDecoder
in this
article.
Decoding of SHP data files is available in the data formats sample.
ImprovementLuciadCPillar
TextStyle::Builder::fontNameTextStyle::Builder::fontNameTextStyle::Builder::fontName
. TextStyles
can be forwarded to FeatureCanvas::TextDrawCommandFeatureCanvas::TextDrawCommandFeatureCanvas::TextDrawCommand
and FeatureCanvas::LabelDrawCommandFeatureCanvas::LabelDrawCommandFeatureCanvas::LabelDrawCommand
.
ImprovementLuciadCPillar
LCP-267
ImprovementLuciadCPillar
LCD-11798
ImprovementLuciadCPillar
LCP-264
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now uses more precise parameters to transform from S-JTSK to WGS 84.
This affects the following codes:
- EPSG:2065
- EPSG:4156
- EPSG:4818
- EPSG:5221
- EPSG:5513
- EPSG:5514
ImprovementLuciadCPillar
LCP-257
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now supports "Australian 1984" (and variants) as alias for AGD84
for WKT strings.
ImprovementLuciadCPillar
LCP-159
ImprovementLuciadCPillar
FeatureModelBuilder::buildFeatureModelBuilder::buildFeatureModelBuilder::build
now allows the creation of an empty model.
ImprovementLuciadCPillar
LCP-204
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now has support for WKT and EPSG references that use the Krovak
projection. The following EPSG codes that use this projection are now supported:
- EPSG:2065
- EPSG:5221
- EPSG:5513
- EPSG:5514
- EPSG:8352
- EPSG:8353
Bug fixLuciadCPillar
LCP-274
Bug fixLuciadCPillar
LCP-260
MapNavigatorMapNavigatorMapNavigator
now check the validity of their parameters:
- The
to
parameter for aMapNavigator::ZoomActionMapNavigator::ZoomActionMapNavigator::ZoomAction
must be in the map reference or an exception is thrown. - The
from
parameter for aMapNavigator::PanActionMapNavigator::PanActionMapNavigator::PanAction
must be in the map reference or an exception is thrown. - The
center
parameter for aMapNavigator::RotateActionMapNavigator::RotateActionMapNavigator::RotateAction
must be in the map reference or an exception is thrown.
Bug fixLuciadCPillar
LCP-259
MapNavigator::ZoomActionMapNavigator::ZoomActionMapNavigator::ZoomAction
is used with a target scale and without animation.
Bug fixLuciadCPillar
LCP-269
Bug fixLuciadCPillar
LCP-151
Bug fixLuciadCPillar
LCP-263
Bug fixLuciadCPillar
Bug fixLuciadCPillar
LCP-252, LCP-253
Bug fixLuciadCPillar
Bug fixLuciadCPillar
LCP-254
Bug fixLuciadCPillar
LCP-278
CoordinateReferenceParser
didn't always correctly take a non-zero prime meridian and a
different angular unit into account for WKT and EPSG strings. This could result in:
- an incorrect prime meridian shift
- a prime meridian shift that was applied twice
- incorrect projection parameters
Bug fixLuciadCPillar
LCP-257
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
: WKT strings using the NAD83 (National Spatial Reference System 2011)
datum and without TOWGS84 parameter were incorrectly formatted as an EPSG code using an other NAD83 version.
Bug fixLuciadCPillar
LCP-169
Bug fixLuciadCPillar
ExpressionValue::getFloatValueExpressionValue::getFloatValueExpressionValue::getFloatValue
now correctly returns a float
instead of a a double
.
Bug fixLuciadCPillar
LCP-148
Bug fixLuciadCPillar
LCP-167
Bug fixLuciadCPillar
LCP-256
HoverEventHandlerHoverEventHandlerHoverEventHandler
or SelectEventHandlerSelectEventHandlerSelectEventHandler
.
Bug fixLuciadCPillar
LCP-255
Bug fixLuciadCPillar
LCP-251
Upgrade considerationLuciadCPillar
WmtsModelDecoder::decodeWmtsModelDecoder::decodeWmtsModelDecoder::decode
method now uses a pointer of the WmtsDataSourceWmtsDataSourceWmtsDataSource
.
The GeoPackageModelDecoder::decodeGeoPackageModelDecoder::decodeGeoPackageModelDecoder::decode
method now uses a pointer of a new class, GeoPackageDataSourceGeoPackageDataSourceGeoPackageDataSource
as input.
Upgrade considerationLuciadCPillar
WmtsModelDecoderWmtsModelDecoderWmtsModelDecoder
now returns the more specific IRasterModelIRasterModelIRasterModel
instead of the more generic ModelModelModel
.
Upgrade considerationLuciadCPillar
LCP-273
MilitarySymbolStyleMilitarySymbolStyleMilitarySymbolStyle
have now been aggregated in
a TextStyleTextStyleTextStyle
.
The text rendering style can be configured by invoking MilitarySymbolStyle::Builder::textStyleMilitarySymbolStyle::Builder::textStyleMilitarySymbolStyle::Builder::textStyle
.
Upgrade considerationLuciadCPillar
LCP-102
Upgrade considerationLuciadCPillar
harfbuzz
to support rendering fonts using non-latin alphabets.
Upgrade considerationLuciadCPillar
to_string
methods for SortProperty
, SortOperator
and SortOrder
types in the FeatureQueryFeatureQueryFeatureQuery
class were removed.
Upgrade considerationLuciadCPillar
FeatureQueryConfigurationFeatureQueryConfigurationFeatureQueryConfiguration
class now returns the scale level count and
an indexed accessor instead of returning the whole vector of conditions.
The FeatureQueryConfiguration::getConditionFeatureQueryConfiguration::getConditionFeatureQueryConfiguration::getCondition
method can return an optional when
all features must be considered for a query.
Upgrade considerationLuciadCPillar
GeometryFactory::createArcBandGeometryFactory::createArcBandGeometryFactory::createArcBand
now takes the center
of the arc band as 2nd parameter. This aligns the signature with other geometry creation methods.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
LCP-179
Map::ViewMapTransformation::viewToMapMap::ViewMapTransformation::viewToMapMap::ViewMapTransformation::viewToMap
is now a synchronous call, and doesn't require the use of a callback anymore.
Due to this change, the IPointCallback
class is not needed anymore in the API, so it was removed.
An additional change is that Map::getViewMapTransformationMap::getViewMapTransformationMap::getViewMapTransformation
is now a const method, and that it now returns a const ref as a result.
Upgrade considerationLuciadCPillar
LCP-170
Map::queryFeaturesMap::queryFeaturesMap::queryFeatures
: It is now possible that the same feature appears multiple times in the result list.
A new overlay flag has been added to MapQueryFeaturesResultMapQueryFeaturesResultMapQueryFeaturesResult
for features that have been hit by their
overlay component drawn in view space. MapQueryFeaturesResult::mapTouchPointMapQueryFeaturesResult::mapTouchPointMapQueryFeaturesResult::mapTouchPoint
is now optional and does
not have a value for overlay items.
Upgrade considerationLuciadCPillar
FeatureCanvas::TextDrawCommandFeatureCanvas::TextDrawCommandFeatureCanvas::TextDrawCommand
now accepts TextStyleTextStyleTextStyle
instead
of separate text styling properties.
2020.1
2020.1
New featureLuciadCPillar
New featureLuciadCPillar
New featureLuciadCPillar
LCP-71
Map::queryFeaturesMap::queryFeaturesMap::queryFeatures
.
See FeatureCanvas::GeometryDrawCommand::queryableFeatureCanvas::GeometryDrawCommand::queryableFeatureCanvas::GeometryDrawCommand::queryable
, FeatureCanvas::IconDrawCommand::queryableFeatureCanvas::IconDrawCommand::queryableFeatureCanvas::IconDrawCommand::queryable
,
FeatureCanvas::TextDrawCommand::queryableFeatureCanvas::TextDrawCommand::queryableFeatureCanvas::TextDrawCommand::queryable
for more details.
New featureLuciadCPillar
IControllerIControllerIController
class documentation for more information.
A user can now create its own implementation of a controller and can interact with the map in a UI toolkit-independent way.
These interactions are for example:
- Map navigation
- Selection
New featureLuciadCPillar
GdalModelDecoderGdalModelDecoderGdalModelDecoder
which uses the GDAL library.
New featureLuciadCPillar
GeoPackageModelDecoderGeoPackageModelDecoderGeoPackageModelDecoder
now supports the GeoPackage 1.0.1, 1.1.0, 1.2.1, and the 1.3.0 specifications.
New featureLuciadCPillar
New featureLuciadCPillar
ImprovementLuciadCPillar
ImprovementLuciadCPillar
Feature::asBuilderFeature::asBuilderFeature::asBuilder
method was added. This method allows to copy and modify an
existing FeatureFeatureFeature
.
ImprovementLuciadCPillar
LCD-11339
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now also has support for
http://www.opengis.net/def/crs/OGC/1.3/CRS84
and
http://www.opengis.net/def/crs/OGC/0/CRS84h
.
ImprovementLuciadCPillar
ImprovementLuciadCPillar
ImprovementLuciadCPillar
GeometryFactory::createArcBandGeometryFactory::createArcBandGeometryFactory::createArcBand
now optionally takes the direction of the arc band.
ImprovementLuciadCPillar
LCP-109
FeatureLayerFeatureLayerFeatureLayer
has been improved in the case of
many small features, like roads.
ImprovementLuciadCPillar
LCP-127
luciad::Exception::getStackTraceluciad::Exception::getStackTraceluciad::Exception::getStackTrace
was very slow on Windows. Generating a single
stack trace could take more than 30 seconds. This is now reduced to less than a second.
ImprovementLuciadCPillar
LCP-69
Debug
library version.
ImprovementLuciadCPillar
LCP-126
ImprovementLuciadCPillar
LCP-122
ImprovementLuciadCPillar
ImprovementLuciadCPillar
LCP-95
ImprovementLuciadCPillar
ImprovementLuciadCPillar
LCP-4
Bug fixLuciadCPillar
Bug fixLuciadCPillar
LCP-46
Bug fixLuciadCPillar
LCP-45
Bug fixLuciadCPillar
LCP-154
IFeatureModelIFeatureModelIFeatureModel
, and then removing
its layer from the map.
Bug fixLuciadCPillar
LCP-108
Bug fixLuciadCPillar
LCP-138
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
when trying to parse a WKT string containing an EPSG authority code.
Bug fixLuciadCPillar
LCP-137
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
didn't correctly parse Web Mercator (EPSG:3857) WKT strings
from gdal. The geodetic datum was spherical instead of flattened.
Bug fixLuciadCPillar
LCP-133
Set Code | Symbol Code | Name |
---|---|---|
10 | 111001 | LAND UNIT - Command and Control - Signal – Radio |
10 | 111002 | LAND UNIT - Command and Control - Signal - Radio Relay |
10 | 111003 | LAND UNIT - Command and Control - Signal – Teletype |
10 | 111004 | LAND UNIT - Command and Control - Signal - Tactical Satellite |
10 | 111005 | LAND UNIT - Command and Control - Signal - Video Imagery (Combat Camera) |
Bug fixLuciadCPillar
LCP-1
Bug fixLuciadCPillar
LCP-6
Bug fixLuciadCPillar
LCP-2
IIconIIconIIcon
instance
in an IFeaturePainterIFeaturePainterIFeaturePainter
implementation. Same IIconIIconIIcon
instances are now
internally re-used, which leads to less memory usage and a higher painting performance.
Upgrade considerationLuciadCPillar
VerticalAlignment::Above
and VerticalAlignment::Below
have been renamed
to VerticalAlignment::TopVerticalAlignment::TopVerticalAlignment::Top
and VerticalAlignment::BottomVerticalAlignment::BottomVerticalAlignment::Bottom
respectively.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
ExpressionValueExpressionValueExpressionValue
methods boolValue
, doubleValue
,
... have been renamed to getBoolValue
, getDoubleValue
, etc.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
LCP-156
LayerFeatureIdLayerFeatureIdLayerFeatureId
has been changed.
It is now consistent with the type name.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
MilitarySymbol::copyToFeatureMilitarySymbol::copyToFeatureMilitarySymbol::copyToFeature
now takes a FeatureFeatureFeature
instead of a FeatureIdFeatureIdFeatureId
.
If you used to call this method, simply replace the FeatureIdFeatureIdFeatureId
argument with
Feature::newBuilder().id(id).dataType(MilitaryDataModel::getSymbolType()).build()
Upgrade considerationLuciadCPillar
create
methods which returned std::unique_ptr<>
now return
std::shared_ptr<>
.
The affected methods are:
FeatureStateManager::Change::createFeatureStateManager::Change::createFeatureStateManager::Change::create
IFeatureModelObserver::createIFeatureModelObserver::createIFeatureModelObserver::create
IFeatureQueryCallback::createIFeatureQueryCallback::createIFeatureQueryCallback::create
IInvalidationCallback::createIInvalidationCallback::createIInvalidationCallback::create
ILayerObserver::createILayerObserver::createILayerObserver::create
IMapQueryFeaturesCallback::createIMapQueryFeaturesCallback::createIMapQueryFeaturesCallback::create
IPointCallback::create
Upgrade considerationLuciadCPillar
std::optional<std::shared_ptr<>>
now return std::shared_ptr<>
.
In your implementation you should now return nullptr
iso std::nullopt
.
Upgrade considerationLuciadCPillar
luciad::GeometryFactory::createArcBandluciad::GeometryFactory::createArcBandluciad::GeometryFactory::createArcBand
had default parameter values
which would lead to a degenerate case. The default values have been made mandatory.
Upgrade considerationLuciadCPillar
IMapInvalidationCallback
was renamed to IInvalidationCallbackIInvalidationCallbackIInvalidationCallback
.
Upgrade considerationLuciadCPillar
Map::queryFeaturesMap::queryFeaturesMap::queryFeatures
now uses a Map::FeatureQueryMap::FeatureQueryMap::FeatureQuery
to select the features.
This query object now also provides additional filtering options, among others the ability to filter on specific
features.
The resulting features are sorted using the following criteria:
3D:
- Top Most feature (unless draped)
- Layer order
- Feature Z order
- Unspecified Order
- Layer order
- Feature Z order
- Unspecified Order
The callback used in the
Map::queryFeaturesMap::queryFeaturesMap::queryFeatures
is renamed to IMapQueryFeaturesCallbackIMapQueryFeaturesCallbackIMapQueryFeaturesCallback
and it now returns a list of MapQueryFeaturesResultMapQueryFeaturesResultMapQueryFeaturesResult
instances.
Upgrade considerationLuciadCPillar
FeatureState::getValuesFeatureState::getValuesFeatureState::getValues
now returns a vector of value objects instead of a vector of
pointers.
Upgrade considerationLuciadCPillar
eigen
to support the GeoTIFF format.
Upgrade considerationLuciadCPillar
IFeatureModelIFeatureModelIFeatureModel
now has API that allows to change the model using the getUpdater
method. See IFeatureModelUpdaterIFeatureModelUpdaterIFeatureModelUpdater
. This change will break existing IFeatureModelIFeatureModelIFeatureModel
implementations. These can be fixed by implementing the new method, and returning std::nullopt
.
Upgrade considerationLuciadCPillar
GeoPackageTableMetadataGeoPackageTableMetadataGeoPackageTableMetadata
type
field has become a string
and the enumeration GeoPackageTableMetadata::TableType
has been removed.
The method GeoPackageModelDecoder::discoverTablesGeoPackageModelDecoder::discoverTablesGeoPackageModelDecoder::discoverTables
has an additional parameter which allows
to filter on supported table data types only or to return all tables available within the GeoPackage file.
Use the value false
to get the filtering behavior as before.
These changes allow to discover all content provided by a GeoPackage file, even when not all of it is supported.
Upgrade considerationLuciadCPillar
GDAL
and proj
to support the GeoTIFF format.
Upgrade considerationLuciadCPillar
SQLite
library has been updated to version 3.31.1.
Upgrade considerationLuciadCPillar
libgpkg
has been updated to version 1.0.1 to support newer versions of the GeoPackage specification.