Namespaces
TransverseMercatorExact.cpp File Reference

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

Detailed Description

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.