Qt Virtual Chart Table (QVCT)
CDataPosition Class Reference

(Geographical) Position data [long,lat,elev] More...

#include <data/CDataPosition.hpp>

Inheritance diagram for CDataPosition:
CDeviceDataFix COverlayPoint CVesselPointDevice CLandmarkPoint COverlayCourse CPointerPoint CRoutePoint CTrackPoint CVesselPoint

Public Member Functions

 CDataPosition ()
 
 CDataPosition (double _fdLongitude, double _fdLatitude, double _fdElevation=UNDEFINED_ELEVATION)
 
 CDataPosition (const CDataPosition &_roDataPosition)
 
virtual ~CDataPosition ()
 
void setPosition (double _fdLongitude, double _fdLatitude, double _fdElevation=UNDEFINED_ELEVATION)
 Sets new coordinates. More...
 
void setPosition (const CDataPosition &_roDataPosition)
 Copy coordinates from another position. More...
 
void resetPosition ()
 Resets all coordinates (to an undefined position) More...
 
void setElevation (double _fdElevation)
 Sets the elevation, in meters. More...
 
void resetElevation ()
 Resets the elevation (to an undefined elevation) More...
 
double getLongitude () const
 Returns this position's longitude, in degrees. More...
 
double getLatitude () const
 Returns this position's latitude, in degrees. More...
 
double getElevation () const
 Returns this position's elevation, in meters. More...
 
void serialize (QDataStream &_rqDataStream) const
 Serializes (store) this object's data to binary format. More...
 
void unserialize (QDataStream &_rqDataStream)
 Unserializes (restore) this object's data from binary format. More...
 
bool operator== (const CDataPosition &_roPosition) const
 Equality operator. More...
 
bool operator!= (const CDataPosition &_roPosition) const
 Inequality operator. More...
 

Static Public Member Functions

static double distanceGC (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Returns the WGS84-corrected great-circle distance between two points, in meters. More...
 
static double bearingGC (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Returns the great-circle (initial) bearing between two points, in degrees. More...
 
static double distanceRL (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Returns the rhumb-line distance between two points, in meters. More...
 
static double bearingRL (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Returns the rhumb-line (constant) bearing between two points, in degrees. More...
 
static double length (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Returns the length (rhumb-line distance and elevation delta) between two points, in meters. More...
 
static bool compareLongitudeAscending (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Longitude (ascending sort) comparison operator. More...
 
static bool compareLongitudeDescending (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Longitude (descending sort) comparison operator. More...
 
static bool compareLatitudeAscending (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Latitude (ascending sort) comparison operator. More...
 
static bool compareLatitudeDescending (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Latitude (descending sort) comparison operator. More...
 
static bool compareElevationAscending (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Elevation (ascending sort) comparison operator. More...
 
static bool compareElevationDescending (const CDataPosition &_roPosition1, const CDataPosition &_roPosition2)
 Elevation (descending sort) comparison operator. More...
 

Static Public Attributes

static constexpr double UNDEFINED_LONGITUDE = -999
 Specific value for an undefined longitude. More...
 
static constexpr double UNDEFINED_LATITUDE = -99
 Specific value for an undefined latitude. More...
 
static constexpr double UNDEFINED_ELEVATION = -9999999
 Specific value for an undefined elevation. More...
 
static const CDataPosition UNDEFINED
 Specific value for an undefined position. More...
 

Private Attributes

double fdLongitude
 Longitude, in degrees. More...
 
double fdLatitude
 Latitude, in degrees. More...
 
double fdElevation
 Elevation, in meters. More...
 

Detailed Description

(Geographical) Position data [long,lat,elev]

This class gathers all components of a fully-qualified geographical position (longitude, latitude and elevation) in SI units (respectively degrees, degrees and meters). It also provides useful geographical position processing functions, such as comparison (sorting), distance and bearing between two positions.

Author
Cedric Dufour http://cedric.dufour.name

Definition at line 35 of file CDataPosition.hpp.

Constructor & Destructor Documentation

◆ CDataPosition() [1/3]

CDataPosition::CDataPosition ( )

Definition at line 116 of file CDataPosition.cpp.

◆ CDataPosition() [2/3]

CDataPosition::CDataPosition ( double  _fdLongitude,
double  _fdLatitude,
double  _fdElevation = UNDEFINED_ELEVATION 
)
Parameters
[in]_fdLongitudeLongitude, in degrees
[in]_fdLatitudeLatitude, in degrees
[in]_fdElevationElevation, in meters

Definition at line 122 of file CDataPosition.cpp.

◆ CDataPosition() [3/3]

CDataPosition::CDataPosition ( const CDataPosition _roDataPosition)

Definition at line 127 of file CDataPosition.cpp.

◆ ~CDataPosition()

virtual CDataPosition::~CDataPosition ( )
inlinevirtual

Definition at line 93 of file CDataPosition.hpp.

Member Function Documentation

◆ distanceGC()

double CDataPosition::distanceGC ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Returns the WGS84-corrected great-circle distance between two points, in meters.

Definition at line 40 of file CDataPosition.cpp.

◆ bearingGC()

double CDataPosition::bearingGC ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Returns the great-circle (initial) bearing between two points, in degrees.

Definition at line 54 of file CDataPosition.cpp.

◆ distanceRL()

double CDataPosition::distanceRL ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Returns the rhumb-line distance between two points, in meters.

Definition at line 69 of file CDataPosition.cpp.

◆ bearingRL()

double CDataPosition::bearingRL ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Returns the rhumb-line (constant) bearing between two points, in degrees.

Definition at line 84 of file CDataPosition.cpp.

◆ length()

double CDataPosition::length ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Returns the length (rhumb-line distance and elevation delta) between two points, in meters.

Definition at line 100 of file CDataPosition.cpp.

◆ setPosition() [1/2]

void CDataPosition::setPosition ( double  _fdLongitude,
double  _fdLatitude,
double  _fdElevation = UNDEFINED_ELEVATION 
)

Sets new coordinates.

Parameters
[in]_fdLongitudeLongitude, in degrees
[in]_fdLatitudeLatitude, in degrees
[in]_fdElevationElevation, in meters

Definition at line 141 of file CDataPosition.cpp.

◆ setPosition() [2/2]

void CDataPosition::setPosition ( const CDataPosition _roDataPosition)

Copy coordinates from another position.

Definition at line 167 of file CDataPosition.cpp.

◆ resetPosition()

void CDataPosition::resetPosition ( )

Resets all coordinates (to an undefined position)

See also
UNDEFINED

Definition at line 174 of file CDataPosition.cpp.

◆ setElevation()

void CDataPosition::setElevation ( double  _fdElevation)
inline

Sets the elevation, in meters.

Definition at line 114 of file CDataPosition.hpp.

◆ resetElevation()

void CDataPosition::resetElevation ( )
inline

Resets the elevation (to an undefined elevation)

See also
UNDEFINED_ELEVATION

Definition at line 117 of file CDataPosition.hpp.

◆ getLongitude()

double CDataPosition::getLongitude ( ) const
inline

Returns this position's longitude, in degrees.

Definition at line 122 of file CDataPosition.hpp.

◆ getLatitude()

double CDataPosition::getLatitude ( ) const
inline

Returns this position's latitude, in degrees.

Definition at line 124 of file CDataPosition.hpp.

◆ getElevation()

double CDataPosition::getElevation ( ) const
inline

Returns this position's elevation, in meters.

Definition at line 126 of file CDataPosition.hpp.

◆ serialize()

void CDataPosition::serialize ( QDataStream &  _rqDataStream) const

Serializes (store) this object's data to binary format.

Definition at line 185 of file CDataPosition.cpp.

◆ unserialize()

void CDataPosition::unserialize ( QDataStream &  _rqDataStream)

Unserializes (restore) this object's data from binary format.

Definition at line 190 of file CDataPosition.cpp.

◆ operator==()

bool CDataPosition::operator== ( const CDataPosition _roPosition) const

Equality operator.

This operator returns true if all components - longitude, latitude and elevation - match.

Definition at line 198 of file CDataPosition.cpp.

◆ operator!=()

bool CDataPosition::operator!= ( const CDataPosition _roPosition) const

Inequality operator.

This operator returns true if any components - longitude, latitude and elevation - mismatch.

Definition at line 205 of file CDataPosition.cpp.

◆ compareLongitudeAscending()

bool CDataPosition::compareLongitudeAscending ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Longitude (ascending sort) comparison operator.

Definition at line 216 of file CDataPosition.cpp.

◆ compareLongitudeDescending()

bool CDataPosition::compareLongitudeDescending ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Longitude (descending sort) comparison operator.

Definition at line 221 of file CDataPosition.cpp.

◆ compareLatitudeAscending()

bool CDataPosition::compareLatitudeAscending ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Latitude (ascending sort) comparison operator.

Definition at line 226 of file CDataPosition.cpp.

◆ compareLatitudeDescending()

bool CDataPosition::compareLatitudeDescending ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Latitude (descending sort) comparison operator.

Definition at line 231 of file CDataPosition.cpp.

◆ compareElevationAscending()

bool CDataPosition::compareElevationAscending ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Elevation (ascending sort) comparison operator.

Definition at line 236 of file CDataPosition.cpp.

◆ compareElevationDescending()

bool CDataPosition::compareElevationDescending ( const CDataPosition _roPosition1,
const CDataPosition _roPosition2 
)
static

Elevation (descending sort) comparison operator.

Definition at line 241 of file CDataPosition.cpp.

Member Data Documentation

◆ UNDEFINED_LONGITUDE

constexpr double CDataPosition::UNDEFINED_LONGITUDE = -999
staticconstexpr

Specific value for an undefined longitude.

Definition at line 44 of file CDataPosition.hpp.

◆ UNDEFINED_LATITUDE

constexpr double CDataPosition::UNDEFINED_LATITUDE = -99
staticconstexpr

Specific value for an undefined latitude.

Definition at line 46 of file CDataPosition.hpp.

◆ UNDEFINED_ELEVATION

constexpr double CDataPosition::UNDEFINED_ELEVATION = -9999999
staticconstexpr

Specific value for an undefined elevation.

Definition at line 48 of file CDataPosition.hpp.

◆ UNDEFINED

const CDataPosition CDataPosition::UNDEFINED
static

Specific value for an undefined position.

Definition at line 50 of file CDataPosition.hpp.

◆ fdLongitude

double CDataPosition::fdLongitude
private

Longitude, in degrees.

See also
setPosition(), getLongitude()

Definition at line 72 of file CDataPosition.hpp.

◆ fdLatitude

double CDataPosition::fdLatitude
private

Latitude, in degrees.

See also
setPosition(), getLatitude()

Definition at line 75 of file CDataPosition.hpp.

◆ fdElevation

double CDataPosition::fdElevation
private

Elevation, in meters.

See also
setPosition(), setElevation(), getElevation()

Definition at line 78 of file CDataPosition.hpp.


The documentation for this class was generated from the following files: