10 #if !defined(GEOGRAPHICLIB_ALBERSEQUALAREA_HPP)
11 #define GEOGRAPHICLIB_ALBERSEQUALAREA_HPP 1
15 namespace GeographicLib {
63 real _a, _f, _fm, _e2, _e, _e2m, _qZ, _qx;
64 real _sign, _lat0, _k0;
65 real _n0, _m02, _nrho0, _k2, _txi0, _scxi0, _sxi0;
66 static const real eps_;
67 static const real epsx_;
68 static const real epsx2_;
69 static const real tol_;
70 static const real tol0_;
71 static const real ahypover_;
72 static const int numit_ = 5;
73 static const int numit0_ = 20;
74 static inline real hyp(real x)
throw() {
return Math::hypot(
real(1), x); }
78 inline real atanhee(real x)
const throw() {
84 (_f < 0 ? (std::atan2(_e * std::abs(x), x < 0 ? -1 : 1)/_e) : x);
87 static real atanhxm1(real x)
throw();
106 static inline real Dsn(real x, real y, real sx, real sy)
throw() {
109 return t > 0 ? (x + y) *
Math::sq( (sx * sy)/t ) / (sx + sy) :
110 (x - y != 0 ? (sx - sy) / (x - y) : 1);
113 inline real Datanhee(real x, real y)
const throw() {
114 real t = x - y, d = 1 - _e2 * x * y;
115 return t != 0 ? atanhee(t / d) / t : 1 / d;
118 real DDatanhee(real x, real y)
const throw();
119 void Init(real sphi1, real cphi1, real sphi2, real cphi2, real k1)
throw();
120 real txif(real tphi)
const throw();
121 real tphif(real txi)
const throw();
185 real sinlat1, real coslat1,
186 real sinlat2, real coslat2,
200 void SetScale(real lat, real k =
real(1));
221 void Forward(real lon0, real lat, real lon,
222 real& x, real& y, real& gamma, real& k)
const throw();
244 void Reverse(real lon0, real x, real y,
245 real& lat, real& lon, real& gamma, real& k)
const throw();
252 real& x, real& y)
const throw() {
254 Forward(lon0, lat, lon, x, y, gamma, k);
262 real& lat, real& lon)
const throw() {
264 Reverse(lon0, x, y, lat, lon, gamma, k);
287 Math::real InverseFlattening()
const throw() {
return 1/_f; }
330 #endif // GEOGRAPHICLIB_ALBERSEQUALAREA_HPP
Math::real CentralScale() const
#define GEOGRAPHICLIB_EXPORT
static const AlbersEqualArea AzimuthalEqualAreaSouth
GeographicLib::Math::real real
static const AlbersEqualArea CylindricalEqualArea
static const AlbersEqualArea AzimuthalEqualAreaNorth
Math::real MajorRadius() const
void Reverse(real lon0, real x, real y, real &lat, real &lon) const
Albers equal area conic projection.
Math::real Flattening() const
Properties of an ellipsoid.
Header for GeographicLib::Constants class.
Math::real OriginLatitude() const
void Forward(real lon0, real lat, real lon, real &x, real &y) const