GeographicLib: GeographicLib::PolarStereographic Class Reference (original) (raw)
Polar stereographic projection. More...
#include <[GeographicLib/PolarStereographic.hpp](PolarStereographic%5F8hpp%5Fsource.html)>
Public Member Functions | |
---|---|
PolarStereographic (real a, real f, real k0) | |
void | SetScale (real lat, real k=real(1)) |
void | Forward (bool northp, real lat, real lon, real &x, real &y, real &gamma, real &k) const |
void | Reverse (bool northp, real x, real y, real &lat, real &lon, real &gamma, real &k) const |
void | Forward (bool northp, real lat, real lon, real &x, real &y) const |
void | Reverse (bool northp, real x, real y, real &lat, real &lon) const |
Inspector functions | |
Math::real | EquatorialRadius () const |
Math::real | Flattening () const |
Math::real | CentralScale () const |
Polar stereographic projection.
Implementation taken from the report,
- J. P. Snyder, Map Projections: A Working Manual, USGS Professional Paper 1395 (1987), pp. 160–163.
This is a straightforward implementation of the equations in Snyder except that Newton's method is used to invert the projection.
This class also returns the meridian convergence gamma and scale k. The meridian convergence is the bearing of grid north (the y axis) measured clockwise from true north.
Example of use:
#include
#include
#include
using namespace std;
try {
Constants::UPS_k0());
bool northp = true;
{
double lat = 61.2, lon = -149.9;
double x, y;
proj.Forward(northp, lat, lon, x, y);
cout << x << " " << y << "\n";
}
{
double x = -1637e3, y = 2824e3;
double lat, lon;
proj.Reverse(northp, x, y, lat, lon);
cout << lat << " " << lon << "\n";
}
}
catch (const exception& e) {
cerr << "Caught exception: " << e.what() << "\n";
return 1;
}
}
int main(int argc, const char *const argv[])
Header for GeographicLib::PolarStereographic class.
Polar stereographic projection.
Namespace for GeographicLib.
Definition at line 36 of file PolarStereographic.hpp.
GeographicLib::PolarStereographic::PolarStereographic | ( | real | a, |
---|---|---|---|
real | f, | ||
real | k0 ) |
Constructor for an ellipsoid with
Parameters
[in] | a | equatorial radius (meters). |
---|---|---|
[in] | f | flattening of ellipsoid. Setting f = 0 gives a sphere. Negative f gives a prolate ellipsoid. |
[in] | k0 | central scale factor. |
Exceptions
Definition at line 16 of file PolarStereographic.cpp.
◆ SetScale()
void GeographicLib::PolarStereographic::SetScale | ( | real | lat, |
---|---|---|---|
real | k = real(1) ) |
◆ Forward() [1/2]
void GeographicLib::PolarStereographic::Forward | ( | bool | northp, |
---|---|---|---|
real | lat, | ||
real | lon, | ||
real & | x, | ||
real & | y, | ||
real & | gamma, | ||
real & | k ) const |
Forward projection, from geographic to polar stereographic.
Parameters
[in] | northp | the pole which is the center of projection (true means north, false means south). |
---|---|---|
[in] | lat | latitude of point (degrees). |
[in] | lon | longitude of point (degrees). |
[out] | x | easting of point (meters). |
[out] | y | northing of point (meters). |
[out] | gamma | meridian convergence at point (degrees). |
[out] | k | scale of projection at point. |
No false easting or northing is added. lat should be in the range (−90°, 90°] for northp = true and in the range [−90°, 90°) for northp = false.
Definition at line 61 of file PolarStereographic.cpp.
References GeographicLib::Math::AngNormalize(), GeographicLib::Math::LatFix(), GeographicLib::Math::qd, GeographicLib::Math::sincosd(), GeographicLib::Math::sq(), GeographicLib::Math::tand(), and GeographicLib::Math::taupf().
Referenced by GeographicLib::UTMUPS::Forward(), and SetScale().
◆ Reverse() [1/2]
void GeographicLib::PolarStereographic::Reverse | ( | bool | northp, |
---|---|---|---|
real | x, | ||
real | y, | ||
real & | lat, | ||
real & | lon, | ||
real & | gamma, | ||
real & | k ) const |
◆ Forward() [2/2]
void GeographicLib::PolarStereographic::Forward ( bool northp, real lat, real lon, real & x, real & y ) const | inline |
---|
◆ Reverse() [2/2]
void GeographicLib::PolarStereographic::Reverse ( bool northp, real x, real y, real & lat, real & lon ) const | inline |
---|
◆ EquatorialRadius()
Math::real GeographicLib::PolarStereographic::EquatorialRadius ( ) const | inline |
---|
Returns
a the equatorial radius of the ellipsoid (meters). This is the value used in the constructor.
Definition at line 128 of file PolarStereographic.hpp.
◆ Flattening()
Math::real GeographicLib::PolarStereographic::Flattening ( ) const | inline |
---|
Returns
f the flattening of the ellipsoid. This is the value used in the constructor.
Definition at line 134 of file PolarStereographic.hpp.
◆ CentralScale()
Math::real GeographicLib::PolarStereographic::CentralScale ( ) const | inline |
---|
The central scale for the projection. This is the value of k0 used in the constructor and is the scale at the pole unless overridden by PolarStereographic::SetScale.
Definition at line 141 of file PolarStereographic.hpp.
◆ UPS()
The documentation for this class was generated from the following files: