![]() |
MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
|
A track aggregator which uses a hierarchy of tracks, typically mirroring their real-world relationships
To configure this aggregator the application must:
Classes | |
struct | AggregationRule |
Public Member Functions | |
TSLTrackAggregatorEchelon () | |
Constructor. | |
virtual | ~TSLTrackAggregatorEchelon () |
Destructor. | |
virtual TSLTrackAggregator::AggregatorType | type () const |
virtual TSLTrackBase * | aggregateTrack (TSLTrackBase *track, const TSLRenderingInterface *renderingInterface) |
uint32_t | numRules () const |
void | addRule (const TSLTrackAggregatorEchelon::AggregationRule &rule) |
void | removeRule (uint32_t index) |
TSLTrackAggregatorEchelon::AggregationRule | queryRule (uint32_t index) const |
TSLTrackAggregatorEchelon::AggregationRule | operator[] (uint32_t index) const |
![]() | |
virtual void | preProcess () |
virtual void | postProcess () |
virtual uint32_t | numAdditionalTracks () const |
virtual TSLTrackBase * | getAdditionalTrack (uint32_t index) const |
virtual | ~TSLTrackAggregator () |
Destructor. | |
Additional Inherited Members | |
![]() | |
enum | AggregatorType { AggregatorCustom , AggregatorByEchelon , AggregatorByDensity } |
The types of aggregator provided by the MapLink API. More... | |
![]() | |
TSLTrackAggregator () | |
TSLTrackAggregatorEchelon::TSLTrackAggregatorEchelon | ( | ) |
Constructor.
|
virtual |
Destructor.
void TSLTrackAggregatorEchelon::addRule | ( | const TSLTrackAggregatorEchelon::AggregationRule & | rule | ) |
Add an aggregation rule
rule | The rule to add |
|
virtual |
This method will be called by the track manager to check whether a track is aggregated or not. The implementation of the aggregator performs its algorithm to determine this, and return the correct TSLTrackBase instance which should be rendered. If null is returned the provided track will not be rendered by the track manager
The algorithm will return null if no rules are set. The algorithm will return the input track if it has aggregation disabled. Otherwise the algorithm determines the rule that applies by checking the minimum resolution and zoom level. It then traverses up the track hierarchy tree to find the matching hierarchy level for the rule. The TrackGroup for that hierarchy level is returned.
The rendering interface is required to allow the aggregator access to draw-specific settings such as the extent of the drawing surface, or the zoom level of the display.
track | The input track |
renderingInterface | The current rendering interface |
Implements TSLTrackAggregator.
uint32_t TSLTrackAggregatorEchelon::numRules | ( | ) | const |
Query the number of configured AggregationRules
TSLTrackAggregatorEchelon::AggregationRule TSLTrackAggregatorEchelon::operator[] | ( | uint32_t | index | ) | const |
Array operator - Will query rules within the aggregator
TSLTrackAggregatorEchelon::AggregationRule TSLTrackAggregatorEchelon::queryRule | ( | uint32_t | index | ) | const |
Query an aggregation rule
index | The index of the rule to query |
void TSLTrackAggregatorEchelon::removeRule | ( | uint32_t | index | ) |
Remove an aggregation rule
index | The index of the rule to remove |
|
virtual |