LuciadCPillar C# 2023.1.04
Luciad.Layers.Features Namespace Reference

Classes

class  FeatureCanvas
 Canvas to provide the commands to draw a geometry, icon, 3D icon, text or a label. More...
 
class  FeatureLayer
 A layer for feature models. More...
 
class  FeaturePainterContext
 FeaturePainterContext provides information for use during feature painting. More...
 
class  FeaturePainterMetadata
 Class to provide information on what type of changes affect the styling. More...
 
class  FeatureQueryConfiguration
 The FeatureQueryConfiguration specifies which conditions to use for feature querying based on the map's current scale. More...
 
class  FeatureState
 Representation of the state of a feature. More...
 
class  FeatureStateEvent
 This class is used by IFeatureStateObserver to pass information about FeatureState changes. More...
 
class  FeatureStateManager
 Manages feature states. More...
 
interface  IFeaturePainter
 A feature painter is used to specify how a feature is painted. More...
 
interface  IFeatureStateObserver
 Can be used to retrieve notifications for FeatureState changes. More...
 
struct  LayerFeatureId
 Represents an identifier for a feature within a view. More...
 

Enumerations

enum  FeatureLayerLoadingStrategy { LoadEverything , LoadSpatially }
 Specifies how a FeatureLayer should retrieve data from its IFeatureModel. More...
 
enum  LabelGroup { Default , NoDeclutter }
 An enumeration of predefined groups for label decluttering. More...
 

Enumeration Type Documentation

◆ FeatureLayerLoadingStrategy

Specifies how a FeatureLayer should retrieve data from its IFeatureModel.

luciad/layers/features/FeatureLayer.h 2023.0.02

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::FeatureLayerLoadingStrategy.
Enumerator
LoadEverything 

A FeatureLayer configured with this strategy will retrieve all data from its model that satisfies the query configuration.

Even when only a small portion of the Map is visible, all data (also outside the visible position of the map) is loaded. Only use this loading strategy for relatively small models.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::FeatureLayerLoadingStrategy::LoadEverything.
LoadSpatially 

This strategy ensures that only the data which is in the visible extent of the Map is retrieved from the model.

If you attempt to use this strategy with a model that is not supported, the LoadEverything strategy will be used instead. A model supports this strategy when it exposes its reference its reference is a geodetic or projected reference, not a geocentric or topocentric reference all the used luciad::FeatureModelMetadata::getFeatureTypes have an luciad::GeometryDataAnnotation

In a 3D scene it is possible that the visible extent of the Map covers multiple areas with different scales. For example, if the camera is tilted, data on the horizon is visualized at a lower scale than data closer to the camera. To that end, LuciadCPillar divides the map in multiple zones that correspond with scale levels that are defined by the query configuration. The loading strategy queries the underlying model by passing the bounds and the query object for each visible scale level zone, and combines the data in each zone for a consistent visualization. This approach allows you to visualize large data sets in 3D, while you can still apply data specific business rules when loading and visualizing the data. In order to take advantage of this loading capability the query configuration should define scale levels and the queries should limit the number of features for smaller scales. Or even to prevent from loading data at all for the least detailed scale.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::FeatureLayerLoadingStrategy::LoadSpatially.

◆ LabelGroup

An enumeration of predefined groups for label decluttering.

luciad/layers/features/LabelGroup.h A label declutter group is a collection of labels that are positioned independently from other label declutter groups. I.e. labels from one group will never affect labels from other groups. This also means that labels from different groups are allowed to overlap. 2021.0

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::LabelGroup.
Enumerator
Default 

Default group for labels that should not overlap.

When no non-overlapping position can be found for a label, it is removed. Labels are placed in this group by default.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::LabelGroup::Default.
NoDeclutter 

Default group for labels that are never removed.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::LabelGroup::NoDeclutter.