Implementation for GeographicLib::TransverseMercatorExact class. More...
#include "GeographicLib/TransverseMercatorExact.hpp"
Go to the source code of this file.
Namespaces | |
namespace | GeographicLib |
Namespace for GeographicLib. | |
Defines | |
#define | GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_CPP "$Id: TransverseMercatorExact.cpp 6937 2011-02-01 20:17:13Z karney $" |
Implementation for GeographicLib::TransverseMercatorExact class.
Copyright (c) Charles Karney (2008, 2009, 2010, 2011) <charles@karney.com> and licensed under the LGPL. For more information, see http://geographiclib.sourceforge.net/
The relevant section of Lee's paper is part V, pp 67–101, Conformal Projections Based On Jacobian Elliptic Functions.
The method entails using the Thompson Transverse Mercator as an intermediate projection. The projections from the intermediate coordinates to [phi, lam] and [x, y] are given by elliptic functions. The inverse of these projections are found by Newton's method with a suitable starting guess.
This implementation and notation closely follows Lee, with the following exceptions:
Lee | here | Description |
---|---|---|
x/a | xi | Northing (unit Earth) |
y/a | eta | Easting (unit Earth) |
s/a | sigma | xi + i * eta |
y | x | Easting |
x | y | Northing |
k | e | eccentricity |
k^2 | mu | elliptic function parameter |
k'^2 | mv | elliptic function complementary parameter |
m | k | scale |
zeta | zeta | complex longitude = Mercator = chi in paper |
s | sigma | complex GK = zeta in paper |
Minor alterations have been made in some of Lee's expressions in an attempt to control round-off. For example atanh(sin(phi)) is replaced by asinh(tan(phi)) which maintains accuracy near phi = pi/2. Such changes are noted in the code.
Definition in file TransverseMercatorExact.cpp.
#define GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_CPP "$Id: TransverseMercatorExact.cpp 6937 2011-02-01 20:17:13Z karney $" |
Definition at line 44 of file TransverseMercatorExact.cpp.