MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
TSLTerrainDatabaseLayer Class Reference
Inheritance diagram for TSLTerrainDatabaseLayer:

Detailed Description

The TSLTerrainDatabaseLayer class provides access to layer-specific information and parameters within a TSLTerrainDatabase.

A TSLTerrainDatabaseLayer is divided into a grid of tiles. Each of these tiles contains multiple resolutions of data, arranged in a pyramid.

All query operations on the terrain database will select a single resolution of data from each layer. The resolution chosen is determined by either calling TSLTerrainDatabase::displayExtent, or TSLTerrainDatabaseLayer::set PostDistanceLimit.

Public Member Functions

virtual ~TSLTerrainDatabaseLayer ()
 
virtual bool largestPostDistance (double &x, double &y)
 
virtual TSLMUExtent queryExtent ()
 
virtual void setPostDistanceLimit (double x, double y)
 
virtual bool smallestPostDistance (double &x, double &y)
 
virtual TSLTerrainTileDataItemqueryTileAt (double x, double y, double nullValue) const
 
virtual TSLTerrainTileDataItemqueryTileAt (double x, double y, double nullValue, double postDistanceLimitX, double postDistanceLimitY) const
 
virtual bool queryPostDistance (double &postDistanceX, double &postDistanceY, bool &levelPresentInAllTiles)
 
virtual bool queryPostDistance (double &postDistanceX, double &postDistanceY, bool &levelPresentInAllTiles, double postDistanceLimitX, double postDistanceLimitY)
 
void operator delete (void *ptr)
 

Protected Member Functions

 TSLTerrainDatabaseLayer ()
 
 TSLTerrainDatabaseLayer (void *p)
 

Constructor & Destructor Documentation

◆ ~TSLTerrainDatabaseLayer()

virtual TSLTerrainDatabaseLayer::~TSLTerrainDatabaseLayer ( )
virtual

◆ TSLTerrainDatabaseLayer() [1/2]

TSLTerrainDatabaseLayer::TSLTerrainDatabaseLayer ( )
protected

◆ TSLTerrainDatabaseLayer() [2/2]

TSLTerrainDatabaseLayer::TSLTerrainDatabaseLayer ( void * p)
protected

Member Function Documentation

◆ largestPostDistance()

virtual bool TSLTerrainDatabaseLayer::largestPostDistance ( double & x,
double & y )
virtual

Query the post distance of the least detailed sub-layer

This is the distance between data points, in the units of the database. This will be the same as the smallest post distance, if there is only 1 data resolution available, or if the database is a TSLDTEDTerrainDatabase.

Depending on the original data, the x and y post distances may be different

Note: This exact level may not be present in all tiles. If it is not, queries will return data based on the post distance limit.

Returns true if the parameters were set successfuly, false otherwise.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ operator delete()

void TSLTerrainDatabaseLayer::operator delete ( void * ptr)

◆ queryExtent()

virtual TSLMUExtent TSLTerrainDatabaseLayer::queryExtent ( )
virtual

Returns the data extent covered by this layer. The extent is in the same units as are used by the terrain database.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ queryPostDistance() [1/2]

virtual bool TSLTerrainDatabaseLayer::queryPostDistance ( double & postDistanceX,
double & postDistanceY,
bool & levelPresentInAllTiles )
virtual

Query the ideal post distance, which will be used when performing tile data queries.

This post distance will be selected based on the contents of the terrain database, and the provided post distance limits.

Note that tiles within a layer may not contain the same levels of resolution, and queried tiles may be returned with a larger post distance than this value. This should only happen if the provided post distance limits cause the highest, or lowest resolution of data to be selected.

Parameters
postDistanceXWill be populated with the ideal horizontal post distance.
postDistanceYWill be populated with the ideal vertical post distance.
levelPresentInAllTilesThis will be set to true if the returned post distance is present in all tiles, or false otherwise.
Returns
true if the parameters were set, or false if the post distance could not be determined.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ queryPostDistance() [2/2]

virtual bool TSLTerrainDatabaseLayer::queryPostDistance ( double & postDistanceX,
double & postDistanceY,
bool & levelPresentInAllTiles,
double postDistanceLimitX,
double postDistanceLimitY )
virtual

Query the ideal post distance, which will be used when performing tile data queries.

This post distance will be selected based on the contents of the terrain database, and the provided post distance limits.

Note that tiles within a layer may not contain the same levels of resolution, and queried tiles may be returned with a larger post distance than this value. This should only happen if the provided post distance limits cause the highest, or lowest resolution of data to be selected.

Parameters
postDistanceXWill be populated with the ideal horizontal post distance.
postDistanceYWill be populated with the ideal vertical post distance.
levelPresentInAllTilesThis will be set to true if the returned post distance is present in all tiles, or false otherwise.
postDistanceLimitXThe horizontal post distance limit.
postDistanceLimitYThe vertical post distance limit.
Returns
true if the parameters were set, or false if the post distance could not be determined.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ queryTileAt() [1/2]

virtual TSLTerrainTileDataItem * TSLTerrainDatabaseLayer::queryTileAt ( double x,
double y,
double nullValue ) const
virtual

Query a tile from this layer, at the given position.

The tile data will be returned without any interpolation, and will respect the limits set by setPostDistanceLimit.

Parameters
(x,y)The location, in units of the terrain database, to query the tile.
nullValueAny null values in the terrain data will be replaced by this value.
Returns
a tile data object, containing the extent, resolution, and data from the specified location. This object is owned by the application, and must be deleted when finished with.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ queryTileAt() [2/2]

virtual TSLTerrainTileDataItem * TSLTerrainDatabaseLayer::queryTileAt ( double x,
double y,
double nullValue,
double postDistanceLimitX,
double postDistanceLimitY ) const
virtual

Query a tile from this layer, at the given position.

The tile data will be returned without any interpolation, and will respect the provided post distance limits.

Parameters
(x,y)The location, in units of the terrain database, to query the tile.
nullValueAny null values in the terrain data will be replaced by this value.
postDistanceLimitXThe horizontal post distance limit.
postDistanceLimitYThe vertical post distance limit.
Returns
a tile data object, containing the extent, resolution, and data from the specified location. This object is owned by the application, and must be deleted when finished with.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ setPostDistanceLimit()

virtual void TSLTerrainDatabaseLayer::setPostDistanceLimit ( double x,
double y )
virtual

Set the post distance limit.

This limit determines which level of the pyramid data is returned from. Data will be returned from the least detailed layer, after this limit.

A limit of 0 will result in the highest available resolution being used. A limit of DBL_MAX will result in the lowest available resolution being used.

If TSLTerrainDatabase::displayExtent is called, this limit will be overridden.

Parameters
xThe horizontal post distance limit.
yThe vertical post distance limit.

Reimplemented in TSLDTEDTerrainDatabaseLayer.

◆ smallestPostDistance()

virtual bool TSLTerrainDatabaseLayer::smallestPostDistance ( double & x,
double & y )
virtual

Query the post distance of the most detailed sub-layer.

This is the distance between data points, in the units of the database. This will be the same as the largest post distance, if there is only 1 data resolution available, or if the database is a TSLDTEDTerrainDatabase.

Depending on the original data, the x and y post distances may be different

Note: This exact level may not be present in all tiles. If it is not, queries will return data based on the post distance limit.

Returns true if the parameters were set successfuly, false otherwise.

Reimplemented in TSLDTEDTerrainDatabaseLayer.