GeographicLib 2.5
|
Properties of an ellipsoid. More...
#include <GeographicLib/Ellipsoid.hpp>
Static Public Member Functions | |
static const Ellipsoid & | WGS84 () |
Eccentricity conversions. | |
static Math::real | SecondFlatteningToFlattening (real fp) |
static Math::real | FlatteningToSecondFlattening (real f) |
static Math::real | ThirdFlatteningToFlattening (real n) |
static Math::real | FlatteningToThirdFlattening (real f) |
static Math::real | EccentricitySqToFlattening (real e2) |
static Math::real | FlatteningToEccentricitySq (real f) |
static Math::real | SecondEccentricitySqToFlattening (real ep2) |
static Math::real | FlatteningToSecondEccentricitySq (real f) |
static Math::real | ThirdEccentricitySqToFlattening (real epp2) |
static Math::real | FlatteningToThirdEccentricitySq (real f) |
Properties of an ellipsoid.
This class returns various properties of the ellipsoid and converts between various types of latitudes. This is for the most part a thin wrapper on top of the AuxLatitude class which is called with exact = true so that the results are valid for arbitrary flattenings −100 < f < 99/100 (i.e., 1/100 < b/a < 100).
Example of use:
Definition at line 31 of file Ellipsoid.hpp.
GeographicLib::Ellipsoid::Ellipsoid | ( | real | a, |
real | f | ||
) |
Constructor for an ellipsoid with
[in] | a | equatorial radius (meters). |
[in] | f | flattening of ellipsoid. Setting f = 0 gives a sphere. Negative f gives a prolate ellipsoid. |
GeographicErr | if a or (1 − f) a is not positive. |
|
inline |
Definition at line 65 of file Ellipsoid.hpp.
|
inline |
Definition at line 70 of file Ellipsoid.hpp.
Math::real GeographicLib::Ellipsoid::QuarterMeridian | ( | ) | const |
Definition at line 36 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::Area | ( | ) | const |
Definition at line 39 of file Ellipsoid.cpp.
|
inline |
Definition at line 91 of file Ellipsoid.hpp.
|
inline |
Definition at line 105 of file Ellipsoid.hpp.
|
inline |
Definition at line 112 of file Ellipsoid.hpp.
|
inline |
Definition at line 119 of file Ellipsoid.hpp.
|
inline |
Definition at line 127 of file Ellipsoid.hpp.
|
inline |
Definition at line 135 of file Ellipsoid.hpp.
|
inline |
Definition at line 144 of file Ellipsoid.hpp.
Math::real GeographicLib::Ellipsoid::ParametricLatitude | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
The geographic latitude, φ, is the angle between the equatorial plane and a vector normal to the surface of the ellipsoid.
The parametric latitude (also called the reduced latitude), β, allows the cartesian coordinated of a meridian to be expressed conveniently in parametric form as
where a and b are the equatorial radius and the polar semi-axis. For a sphere β = φ.
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value β lies in [−90°, 90°].
Definition at line 42 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::InverseParametricLatitude | ( | real | beta | ) | const |
[in] | beta | the parametric latitude (degrees). |
β must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value φ lies in [−90°, 90°].
Definition at line 47 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::GeocentricLatitude | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
The geocentric latitude, θ, is the angle between the equatorial plane and a line between the center of the ellipsoid and a point on the ellipsoid. For a sphere θ = φ.
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value θ lies in [−90°, 90°].
Definition at line 52 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::InverseGeocentricLatitude | ( | real | theta | ) | const |
[in] | theta | the geocentric latitude (degrees). |
θ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value φ lies in [−90°, 90°].
Definition at line 57 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::RectifyingLatitude | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
The rectifying latitude, μ, has the property that the distance along a meridian of the ellipsoid between two points with rectifying latitudes μ1 and μ2 is equal to (μ2 - μ1) L / 90°, where L = QuarterMeridian(). For a sphere μ = φ.
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value μ lies in [−90°, 90°].
Definition at line 62 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::InverseRectifyingLatitude | ( | real | mu | ) | const |
[in] | mu | the rectifying latitude (degrees). |
μ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value φ lies in [−90°, 90°].
Definition at line 67 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::AuthalicLatitude | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
The authalic latitude, ξ, has the property that the area of the ellipsoid between two circles with authalic latitudes ξ1 and ξ2 is equal to (sin ξ2 - sin ξ1) A / 2, where A = Area(). For a sphere ξ = φ.
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value ξ lies in [−90°, 90°].
Definition at line 72 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::InverseAuthalicLatitude | ( | real | xi | ) | const |
[in] | xi | the authalic latitude (degrees). |
ξ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value φ lies in [−90°, 90°].
Definition at line 77 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::ConformalLatitude | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
The conformal latitude, χ, gives the mapping of the ellipsoid to a sphere which which is conformal (angles are preserved) and in which the equator of the ellipsoid maps to the equator of the sphere. For a sphere χ = φ.
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value χ lies in [−90°, 90°].
Definition at line 82 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::InverseConformalLatitude | ( | real | chi | ) | const |
[in] | chi | the conformal latitude (degrees). |
χ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The returned value φ lies in [−90°, 90°].
Definition at line 87 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::IsometricLatitude | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
The isometric latitude gives the mapping of the ellipsoid to a plane which which is conformal (angles are preserved) and in which the equator of the ellipsoid maps to a straight line of constant scale; this mapping defines the Mercator projection. For a sphere ψ = sinh−1 tan φ.
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold. The value returned for φ = ±90° is some (positive or negative) large but finite value, such that InverseIsometricLatitude returns the original value of φ.
Definition at line 92 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::InverseIsometricLatitude | ( | real | psi | ) | const |
[in] | psi | the isometric latitude (degrees). |
The returned value φ lies in [−90°, 90°]. For a sphere φ = tan−1 sinh ψ.
Definition at line 97 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::CircleRadius | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
Definition at line 102 of file Ellipsoid.cpp.
References GeographicLib::AuxAngle::x().
Math::real GeographicLib::Ellipsoid::CircleHeight | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
Definition at line 110 of file Ellipsoid.cpp.
References GeographicLib::AuxAngle::y().
Math::real GeographicLib::Ellipsoid::MeridianDistance | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
Definition at line 118 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::MeridionalCurvatureRadius | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
Definition at line 124 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::TransverseCurvatureRadius | ( | real | phi | ) | const |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
Definition at line 129 of file Ellipsoid.cpp.
Math::real GeographicLib::Ellipsoid::NormalCurvatureRadius | ( | real | phi, |
real | azi | ||
) | const |
[in] | phi | the geographic latitude (degrees). |
[in] | azi | the angle between the meridian and the normal section (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined this condition does not hold.
Definition at line 134 of file Ellipsoid.cpp.
|
inlinestatic |
[in] | fp | = f ' = (a − b) / b, the second flattening. |
f ' should lie in (−1, ∞). The returned value f lies in (−∞, 1).
Definition at line 401 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value f ' lies in (−1, ∞).
Definition at line 411 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | n | = (a − b) / (a + b), the third flattening. |
n should lie in (−1, 1). The returned value f lies in (−∞, 1).
Definition at line 422 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value n lies in (−1, 1).
Definition at line 433 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | e2 | = e2 = (a2 − b2) / a2, the eccentricity squared. |
e2 should lie in (−∞, 1). The returned value f lies in (−∞, 1).
Definition at line 445 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value e2 lies in (−∞, 1).
Definition at line 457 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | ep2 | = e' 2 = (a2 − b2) / b2, the second eccentricity squared. |
e' 2 should lie in (−1, ∞). The returned value f lies in (−∞, 1).
Definition at line 469 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value e' 2 lies in (−1, ∞).
Definition at line 481 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | epp2 | = e'' 2 = (a2 − b2) / (a2 + b2), the third eccentricity squared. |
e'' 2 should lie in (−1, 1). The returned value f lies in (−∞, 1).
Definition at line 493 of file Ellipsoid.hpp.
|
inlinestatic |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value e'' 2 lies in (−1, 1).
Definition at line 507 of file Ellipsoid.hpp.
|
static |
A global instantiation of Ellipsoid with the parameters for the WGS84 ellipsoid.
Definition at line 31 of file Ellipsoid.cpp.