VSM C++ SDK
Vehicle Specific Modules SDK
ugcs::vsm::Position< Datum > Class Template Reference

Immutable position in a specified coordinates system. More...

#include <coordinates.h>

Public Types

typedef Datum Datum_type
 Associated datum. More...
 

Public Member Functions

 Position (Geodetic_tuple tuple)
 Construct position from geodetic coordinates. More...
 
 Position (Cartesian_tuple tuple)
 Construct position from ECEF coordinates. More...
 
Geodetic_tuple Get_geodetic () const
 Get representation in geodetic coordinates. More...
 
Cartesian_tuple Get_ecef () const
 Get representation in ECEF coordinates - Earth-centered Earth-fixed CS, ((x) axis points from the Earth center to the intersection of zero parallel and zero (International Reference) meridian; (z) axis points towards the International Reference Pole; (x, y, z) form right-hand reference frame.
 
double Lat_meter () const
 One meter expressed in latitude radians. More...
 
double Long_meter () const
 One meter expressed in longitude radians.
 
double Bearing (const Position &target)
 Get bearing in radians (-PI; +PI) to the target. More...
 
double Earth_radius () const
 The Earth's mean radius of curvature (averaging over all directions) at a latitude of the position.
 
double Distance (const Position &pos) const
 Calculate the surface (altitude is not taken into account) distance in meters between this and given positions using spherical law of cosines formula and mean Earth radius of curvature between these points.
 

Static Public Attributes

static constexpr double ECCENTRICITY_SQUARED = (2 - Datum::FLATTENING) * Datum::FLATTENING
 Square of eccentricity of the reference ellipsoid. More...
 

Detailed Description

template<class Datum>
class ugcs::vsm::Position< Datum >

Immutable position in a specified coordinates system.

Member Typedef Documentation

template<class Datum>
typedef Datum ugcs::vsm::Position< Datum >::Datum_type

Associated datum.

Constructor & Destructor Documentation

template<class Datum>
ugcs::vsm::Position< Datum >::Position ( Geodetic_tuple  tuple)
inline

Construct position from geodetic coordinates.

template<class Datum>
ugcs::vsm::Position< Datum >::Position ( Cartesian_tuple  tuple)
inline

Construct position from ECEF coordinates.

Member Function Documentation

template<class Datum>
double ugcs::vsm::Position< Datum >::Bearing ( const Position< Datum > &  target)
inline

Get bearing in radians (-PI; +PI) to the target.

template<class Datum>
Geodetic_tuple ugcs::vsm::Position< Datum >::Get_geodetic ( ) const
inline

Get representation in geodetic coordinates.

template<class Datum>
double ugcs::vsm::Position< Datum >::Lat_meter ( ) const
inline

One meter expressed in latitude radians.

Member Data Documentation

template<class Datum>
constexpr double ugcs::vsm::Position< Datum >::ECCENTRICITY_SQUARED = (2 - Datum::FLATTENING) * Datum::FLATTENING
static

Square of eccentricity of the reference ellipsoid.


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