Implementation for GeographicLib::TransverseMercatorExact class. More...
#include "GeographicLib/TransverseMercatorExact.hpp"
#include "GeographicLib/Constants.hpp"
#include <limits>
#include <algorithm>
Go to the source code of this file.
Namespaces | |
namespace | GeographicLib |
Implementation for GeographicLib::TransverseMercatorExact class.
Copyright (c) Charles Karney (2008) <charles@karney.com> http://charles.karney.info/geographic and licensed under the LGPL.
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 |
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.