swift
Public Types | Public Member Functions | Static Protected Member Functions | List of all members
swift::misc::geo::ICoordinateGeodetic Class Referenceabstract

Geodetic coordinate, a position in 3D space relative to the reference geoid. More...

Inheritance diagram for swift::misc::geo::ICoordinateGeodetic:
[legend]

Public Types

enum  ColumnIndex {
  IndexLatitude = CPropertyIndexRef::GlobalIndexICoordinateGeodetic , IndexLongitude , IndexLatitudeAsString , IndexLongitudeAsString ,
  IndexGeodeticHeight , IndexGeodeticHeightAsString , IndexNormalVector
}
 Properties by index.
 

Public Member Functions

 ICoordinateGeodetic ()=default
 Ctor.
 
virtual ~ICoordinateGeodetic ()
 Destructor.
 
 ICoordinateGeodetic (const ICoordinateGeodetic &)=default
 Copy constructor.
 
ICoordinateGeodeticoperator= (const ICoordinateGeodetic &)=default
 Copy assignment operator.
 
virtual CLatitude latitude () const =0
 Latitude.
 
virtual CLongitude longitude () const =0
 Longitude.
 
virtual const aviation::CAltitudegeodeticHeight () const =0
 Height, ellipsoidal or geodetic height (used in GPS) More...
 
virtual QVector3D normalVector () const =0
 Normal vector. More...
 
virtual std::array< double, 3 > normalVectorDouble () const =0
 Normal vector with double precision.
 
bool equalNormalVectorDouble (const std::array< double, 3 > &otherVector) const
 Is equal? Epsilon considered.
 
bool equalNormalVectorDouble (const ICoordinateGeodetic &otherCoordinate) const
 Is equal, epsilon considered?
 
QString latitudeAsString () const
 Latitude as string.
 
QString longitudeAsString () const
 Longitude as string.
 
QString geodeticHeightAsString () const
 Height as string.
 
bool isGeodeticHeightNull () const
 Geodetic height null?
 
bool hasMSLGeodeticHeight () const
 Geodetic height not null and aviation::CAltitude::MeanSeaLevel.
 
virtual bool isNull () const
 Is null, means vector x, y, z == 0. More...
 
physical_quantities::CLength calculateGreatCircleDistance (const ICoordinateGeodetic &otherCoordinate) const
 Great circle distance.
 
bool isWithinRange (const ICoordinateGeodetic &otherCoordinate, const physical_quantities::CLength &range) const
 Object within range?
 
physical_quantities::CAngle calculateBearing (const ICoordinateGeodetic &otherCoordinate) const
 Initial bearing.
 
QVariant propertyByIndex (CPropertyIndexRef index) const
 Property by index. More...
 
int comparePropertyByIndex (CPropertyIndexRef index, const ICoordinateGeodetic &compareValue) const
 Compare for index. More...
 
QString convertToQString (bool i18n=false) const
 Cast as QString. More...
 

Static Protected Member Functions

static bool canHandleIndex (CPropertyIndexRef index)
 Can given index be handled?
 
bool isNaNVector () const
 Check values.
 
bool isNaNVectorDouble () const
 Check values.
 
bool isInfVector () const
 Check values.
 
bool isInfVectorDouble () const
 Check values.
 
bool isValidVectorRange () const
 Check values.
 
static bool isValidVector (const std::array< double, 3 > &v)
 Check values.
 

Detailed Description

Geodetic coordinate, a position in 3D space relative to the reference geoid.

Composed of a latitude, longitude, and height (aka altitude, aka elevation).

See also
http://www.esri.com/news/arcuser/0703/geoid1of3.html
http://http://www.gmat.unsw.edu.au/snap/gps/clynch_pdfs/coordcvt.pdf (page 5)
http://en.wikipedia.org/wiki/Geodetic_datum#Vertical_datum

Definition at line 38 of file coordinategeodetic.h.

Member Function Documentation

◆ comparePropertyByIndex()

int swift::misc::geo::ICoordinateGeodetic::comparePropertyByIndex ( CPropertyIndexRef  index,
const ICoordinateGeodetic compareValue 
) const

Compare for index.

Definition at line 160 of file coordinategeodetic.cpp.

◆ convertToQString()

QString swift::misc::geo::ICoordinateGeodetic::convertToQString ( bool  i18n = false) const

Cast as QString.

Definition at line 188 of file coordinategeodetic.cpp.

◆ geodeticHeight()

virtual const aviation::CAltitude& swift::misc::geo::ICoordinateGeodetic::geodeticHeight ( ) const
pure virtual

Height, ellipsoidal or geodetic height (used in GPS)

This is approximately MSL (orthometric) height, aka altitude, aka elevation. The terms "geodetic height", "altitude", and "elevation" are interchangable. "Geodetic height" is the generic, context-free term for the vertical component of a position. This is commonly called "altitude" for objects that can move freely in the vertical component. By a similar convention, "elevation" is commonly used for objects that are fixed to the ground.

See also
see http://www.gmat.unsw.edu.au/snap/gps/clynch_pdfs/coordcvt.pdf page 5
http://www.esri.com/news/arcuser/0703/geoid1of3.html

Implemented in swift::misc::simulation::xplane::CNavDataReference, swift::misc::simulation::CSimulatedAircraft, swift::misc::geo::CCoordinateGeodetic, swift::misc::aviation::CAtcStation, swift::misc::aviation::CAirport, and swift::misc::aviation::CAircraftSituation.

◆ isNull()

virtual bool swift::misc::geo::ICoordinateGeodetic::isNull ( ) const
inlinevirtual

Is null, means vector x, y, z == 0.

Remarks
this is a default implementation, concrete implementations of ICoordinateGeodetic might override it

Reimplemented in swift::misc::geo::CElevationPlane, swift::misc::geo::CCoordinateGeodetic, swift::misc::aviation::CAirport, and swift::misc::aviation::CAircraftSituation.

Definition at line 115 of file coordinategeodetic.h.

◆ normalVector()

virtual QVector3D swift::misc::geo::ICoordinateGeodetic::normalVector ( ) const
pure virtual

◆ propertyByIndex()

QVariant swift::misc::geo::ICoordinateGeodetic::propertyByIndex ( CPropertyIndexRef  index) const

Property by index.

Definition at line 137 of file coordinategeodetic.cpp.


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