Local Cartesian coordinates. More...
#include <GeographicLib/LocalCartesian.hpp>
Public Member Functions | |
LocalCartesian (real lat0, real lon0, real h0=0, const Geocentric &earth=Geocentric::WGS84) throw () | |
LocalCartesian (const Geocentric &earth=Geocentric::WGS84) throw () | |
void | Reset (real lat0, real lon0, real h0=0) throw () |
void | Forward (real lat, real lon, real h, real &x, real &y, real &z) const throw () |
void | Forward (real lat, real lon, real h, real &x, real &y, real &z, std::vector< real > &M) const throw () |
void | Reverse (real x, real y, real z, real &lat, real &lon, real &h) const throw () |
void | Reverse (real x, real y, real z, real &lat, real &lon, real &h, std::vector< real > &M) const throw () |
Inspector functions | |
Math::real | LatitudeOrigin () const throw () |
Math::real | LongitudeOrigin () const throw () |
Math::real | HeightOrigin () const throw () |
Math::real | MajorRadius () const throw () |
Math::real | InverseFlattening () const throw () |
Local Cartesian coordinates.
Convert between geodetic coordinates latitude = lat, longitude = lon, height = h (measured vertically from the surface of the ellipsoid) to local cartesian coordinates (x, y, z). The origin of local cartesian coordinate system is at lat = lat0, lon = lon0, h = h0. The z axis is normal to the ellipsoid; the y axis points due north. The plane z = - h0 is tangent to the ellipsoid.
The conversions all take place via geocentric coordinates using a Geocentric object (by default Geocentric::WGS84).
Definition at line 32 of file LocalCartesian.hpp.
GeographicLib::LocalCartesian::LocalCartesian | ( | real | lat0, | |
real | lon0, | |||
real | h0 = 0 , |
|||
const Geocentric & | earth = Geocentric::WGS84 | |||
) | throw () [inline] |
Constructor setting the origin.
[in] | lat0 | latitude at origin (degrees). |
[in] | lon0 | longitude at origin (degrees). |
[in] | h0 | height above ellipsoid at origin (meters); default 0. |
[in] | earth | Geocentric object for the transformation; default Geocentric::WGS84. |
Definition at line 55 of file LocalCartesian.hpp.
References Reset().
GeographicLib::LocalCartesian::LocalCartesian | ( | const Geocentric & | earth = Geocentric::WGS84 |
) | throw () [inline, explicit] |
Default constructor.
[in] | earth | Geocentric object for the transformation; default Geocentric::WGS84. |
Sets lat0 = 0, lon0 = 0, h0 = 0.
Definition at line 68 of file LocalCartesian.hpp.
References Reset().
void GeographicLib::LocalCartesian::Reset | ( | real | lat0, | |
real | lon0, | |||
real | h0 = 0 | |||
) | throw () |
Reset the origin.
[in] | lat0 | latitude at origin (degrees). |
[in] | lon0 | longitude at origin (degrees). |
[in] | h0 | height above ellipsoid at origin (meters); default 0. |
Definition at line 21 of file LocalCartesian.cpp.
Referenced by LocalCartesian().
void GeographicLib::LocalCartesian::Forward | ( | real | lat, | |
real | lon, | |||
real | h, | |||
real & | x, | |||
real & | y, | |||
real & | z | |||
) | const throw () [inline] |
Convert from geodetic to local cartesian coordinates.
[in] | lat | latitude of point (degrees). |
[in] | lon | longitude of point (degrees). |
[in] | h | height of point above the ellipsoid (meters). |
[out] | x | local cartesian coordinate (meters). |
[out] | y | local cartesian coordinate (meters). |
[out] | z | local cartesian coordinate (meters). |
lat should be in the range [-90, 90]; lon and lon0 should be in the range [-180, 360].
Definition at line 96 of file LocalCartesian.hpp.
void GeographicLib::LocalCartesian::Forward | ( | real | lat, | |
real | lon, | |||
real | h, | |||
real & | x, | |||
real & | y, | |||
real & | z, | |||
std::vector< real > & | M | |||
) | const throw () [inline] |
Convert from geodetic to local cartesian coordinates and return rotation matrix.
[in] | lat | latitude of point (degrees). |
[in] | lon | longitude of point (degrees). |
[in] | h | height of point above the ellipsoid (meters). |
[out] | x | local cartesian coordinate (meters). |
[out] | y | local cartesian coordinate (meters). |
[out] | z | local cartesian coordinate (meters). |
[out] | M | if the length of the vector is 9, fill with the rotation matrix in row-major order. |
Pre-multiplying a unit vector in local cartesian coordinates at (lat, lon, h) by M transforms the vector to local cartesian coordinates at (lat0, lon0, h0).
Definition at line 118 of file LocalCartesian.hpp.
void GeographicLib::LocalCartesian::Reverse | ( | real | x, | |
real | y, | |||
real | z, | |||
real & | lat, | |||
real & | lon, | |||
real & | h | |||
) | const throw () [inline] |
Convert from local cartesian to geodetic coordinates.
[in] | x | local cartesian coordinate (meters). |
[in] | y | local cartesian coordinate (meters). |
[in] | z | local cartesian coordinate (meters). |
[out] | lat | latitude of point (degrees). |
[out] | lon | longitude of point (degrees). |
[out] | h | height of point above the ellipsoid (meters). |
The value of lon returned is in the range [-180, 180).
Definition at line 139 of file LocalCartesian.hpp.
void GeographicLib::LocalCartesian::Reverse | ( | real | x, | |
real | y, | |||
real | z, | |||
real & | lat, | |||
real & | lon, | |||
real & | h, | |||
std::vector< real > & | M | |||
) | const throw () [inline] |
Convert from local cartesian to geodetic coordinates and return rotation matrix.
[in] | x | local cartesian coordinate (meters). |
[in] | y | local cartesian coordinate (meters). |
[in] | z | local cartesian coordinate (meters). |
[out] | lat | latitude of point (degrees). |
[out] | lon | longitude of point (degrees). |
[out] | h | height of point above the ellipsoid (meters). |
[out] | M | if the length of the vector is 9, fill with the rotation matrix in row-major order. |
Pre-multiplying a unit vector in local cartesian coordinates at (lat0, lon0, h0) by the transpose of M transforms the vector to local cartesian coordinates at (lat, lon, h).
Definition at line 161 of file LocalCartesian.hpp.
Math::real GeographicLib::LocalCartesian::LatitudeOrigin | ( | ) | const throw () [inline] |
Definition at line 176 of file LocalCartesian.hpp.
Math::real GeographicLib::LocalCartesian::LongitudeOrigin | ( | ) | const throw () [inline] |
Definition at line 181 of file LocalCartesian.hpp.
Math::real GeographicLib::LocalCartesian::HeightOrigin | ( | ) | const throw () [inline] |
Definition at line 186 of file LocalCartesian.hpp.
Math::real GeographicLib::LocalCartesian::MajorRadius | ( | ) | const throw () [inline] |
Definition at line 193 of file LocalCartesian.hpp.
References GeographicLib::Geocentric::MajorRadius().
Math::real GeographicLib::LocalCartesian::InverseFlattening | ( | ) | const throw () [inline] |
Definition at line 201 of file LocalCartesian.hpp.
References GeographicLib::Geocentric::InverseFlattening().