NETGeographicLib
1.51
|
.NET wrapper for GeographicLib::Ellipsoid. More...
#include <NETGeographicLib/Ellipsoid.h>
Public Member Functions | |
~Ellipsoid () | |
Constructor | |
Ellipsoid () | |
Ellipsoid (double a, double f) | |
Latitude conversion. | |
double | ParametricLatitude (double phi) |
double | InverseParametricLatitude (double beta) |
double | GeocentricLatitude (double phi) |
double | InverseGeocentricLatitude (double theta) |
double | RectifyingLatitude (double phi) |
double | InverseRectifyingLatitude (double mu) |
double | AuthalicLatitude (double phi) |
double | InverseAuthalicLatitude (double xi) |
double | ConformalLatitude (double phi) |
double | InverseConformalLatitude (double chi) |
double | IsometricLatitude (double phi) |
double | InverseIsometricLatitude (double psi) |
Other quantities. | |
double | CircleRadius (double phi) |
double | CircleHeight (double phi) |
double | MeridianDistance (double phi) |
double | MeridionalCurvatureRadius (double phi) |
double | TransverseCurvatureRadius (double phi) |
double | NormalCurvatureRadius (double phi, double azi) |
Static Public Member Functions | |
Eccentricity conversions. | |
static double | SecondFlatteningToFlattening (double fp) |
static double | FlatteningToSecondFlattening (double f) |
static double | ThirdFlatteningToFlattening (double n) |
static double | FlatteningToThirdFlattening (double f) |
static double | EccentricitySqToFlattening (double e2) |
static double | FlatteningToEccentricitySq (double f) |
static double | SecondEccentricitySqToFlattening (double ep2) |
static double | FlatteningToSecondEccentricitySq (double f) |
static double | ThirdEccentricitySqToFlattening (double epp2) |
static double | FlatteningToThirdEccentricitySq (double f) |
Properties | |
Ellipsoid dimensions. | |
double | EquatorialRadius [get] |
double | MinorRadius [get] |
double | QuarterMeridian [get] |
double | Area [get] |
double | Volume [get] |
Ellipsoid shape | |
double | Flattening [get] |
double | SecondFlattening [get] |
double | ThirdFlattening [get] |
double | EccentricitySq [get] |
double | SecondEccentricitySq [get] |
double | ThirdEccentricitySq [get] |
.NET wrapper for GeographicLib::Ellipsoid.
This class allows .NET applications to access GeographicLib::Ellipsoid.
This class returns various properties of the ellipsoid and converts between various types of latitudes. The latitude conversions are also possible using the various projections supported by GeographicLib; but Ellipsoid provides more direct access (sometimes using private functions of the projection classes). Ellipsoid::RectifyingLatitude, Ellipsoid::InverseRectifyingLatitude, and Ellipsoid::MeridianDistance provide functionality which can be provided by the Geodesic class. However Geodesic uses a series approximation (valid for abs f < 1/150), whereas Ellipsoid computes these quantities using EllipticFunction which provides accurate results even when f is large. Use of this class should be limited to −3 < f < 3/4 (i.e., 1/4 < b/a < 4).
C# Example:
Managed C++ Example:
Visual Basic Example:
INTERFACE DIFFERENCES:
A default constructor has been provided that assumes a WGS84 ellipsoid.
The following functions are implemented as properties: EquatorialRadius, MinorRadius, QuarterMeridian, Area, Volume, Flattening, SecondFlattening, ThirdFlattening, EccentricitySq, SecondEccentricitySq, and ThirdEccentricitySq.
Definition at line 47 of file Ellipsoid.h.
NETGeographicLib::Ellipsoid::Ellipsoid | ( | ) |
Constructor for a WGS84 ellipsoid
NETGeographicLib::Ellipsoid::Ellipsoid | ( | double | a, |
double | f | ||
) |
Constructor for a 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 |
The destructor calls the finalizer.
Definition at line 79 of file Ellipsoid.h.
double NETGeographicLib::Ellipsoid::ParametricLatitude | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
The geographic latitude, φ, is the angle beween 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°].
double NETGeographicLib::Ellipsoid::InverseParametricLatitude | ( | double | beta | ) |
[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°].
double NETGeographicLib::Ellipsoid::GeocentricLatitude | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
The geocentric latitude, θ, is the angle beween 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°].
double NETGeographicLib::Ellipsoid::InverseGeocentricLatitude | ( | double | theta | ) |
[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°].
double NETGeographicLib::Ellipsoid::RectifyingLatitude | ( | double | phi | ) |
[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°].
double NETGeographicLib::Ellipsoid::InverseRectifyingLatitude | ( | double | mu | ) |
[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°].
double NETGeographicLib::Ellipsoid::AuthalicLatitude | ( | double | phi | ) |
[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°].
double NETGeographicLib::Ellipsoid::InverseAuthalicLatitude | ( | double | xi | ) |
[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°].
double NETGeographicLib::Ellipsoid::ConformalLatitude | ( | double | phi | ) |
[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°].
double NETGeographicLib::Ellipsoid::InverseConformalLatitude | ( | double | chi | ) |
[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°].
double NETGeographicLib::Ellipsoid::IsometricLatitude | ( | double | phi | ) |
[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.
double NETGeographicLib::Ellipsoid::InverseIsometricLatitude | ( | double | psi | ) |
[in] | psi | the isometric latitude (degrees). |
The returned value φ lies in [−90°, 90°].
double NETGeographicLib::Ellipsoid::CircleRadius | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
double NETGeographicLib::Ellipsoid::CircleHeight | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
double NETGeographicLib::Ellipsoid::MeridianDistance | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
double NETGeographicLib::Ellipsoid::MeridionalCurvatureRadius | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
double NETGeographicLib::Ellipsoid::TransverseCurvatureRadius | ( | double | phi | ) |
[in] | phi | the geographic latitude (degrees). |
φ must lie in the range [−90°, 90°]; the result is undefined if this condition does not hold.
double NETGeographicLib::Ellipsoid::NormalCurvatureRadius | ( | double | phi, |
double | azi | ||
) |
[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 if this condition does not hold.
|
static |
[in] | fp | = f ' = (a − b) / b, the second flattening. |
f ' should lie in (−1, ∞). The returned value f lies in (−∞, 1).
|
static |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value f ' lies in (−1, ∞).
|
static |
[in] | n | = (a − b) / (a + b), the third flattening. |
n should lie in (−1, 1). The returned value f lies in (−∞, 1).
|
static |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value n lies in (−1, 1).
|
static |
[in] | e2 | = e2 = (a2 − b2) / a2, the eccentricity squared. |
e2 should lie in (−∞, 1). The returned value f lies in (−∞, 1).
|
static |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value e2 lies in (−∞, 1).
|
static |
[in] | ep2 | = e' 2 = (a2 − b2) / b2, the second eccentricity squared. |
e' 2 should lie in (−1, ∞). The returned value f lies in (−∞, 1).
|
static |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value e' 2 lies in (−1, ∞).
|
static |
[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).
|
static |
[in] | f | = (a − b) / a, the flattening. |
f should lie in (−∞, 1). The returned value e'' 2 lies in (−1, 1).
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.
|
get |
Definition at line 79 of file Ellipsoid.h.