.NET wrapper for GeographicLib::PolarStereographic. More...
#include <NETGeographicLib/PolarStereographic.h>
Public Member Functions | |
| PolarStereographic (double a, double f, double k0) | |
| PolarStereographic () | |
| ~PolarStereographic () | |
| void | SetScale (double lat, double k) |
| void | Forward (bool northp, double lat, double lon,[System::Runtime::InteropServices::Out] double% x,[System::Runtime::InteropServices::Out] double% y,[System::Runtime::InteropServices::Out] double% gamma,[System::Runtime::InteropServices::Out] double% k) |
| void | Reverse (bool northp, double x, double y,[System::Runtime::InteropServices::Out] double% lat,[System::Runtime::InteropServices::Out] double% lon,[System::Runtime::InteropServices::Out] double% gamma,[System::Runtime::InteropServices::Out] double% k) |
| void | Forward (bool northp, double lat, double lon,[System::Runtime::InteropServices::Out] double% x,[System::Runtime::InteropServices::Out] double% y) |
| void | Reverse (bool northp, double x, double y,[System::Runtime::InteropServices::Out] double% lat,[System::Runtime::InteropServices::Out] double% lon) |
Properties | |
Inspector functions | |
| double | MajorRadius [get] |
| double | Flattening [get] |
| double | CentralScale [get] |
.NET wrapper for GeographicLib::PolarStereographic.
This class allows .NET applications to access GeographicLib::PolarStereographic. .NET wrapper for GeographicLib::PolarStereographic. This class allows .NET applications to access GeographicLib::PolarStereographic.
Implementation taken from the report,
This is a straightforward implementation of the equations in Snyder except that Newton's method is used to invert the projection.
C# Example:
using System; using NETGeographicLib; namespace example_PolarStereographic { class Program { static void Main(string[] args) { try { PolarStereographic proj = new PolarStereographic(); // WGS84 bool northp = true; { // Sample forward calculation double lat = 61.2, lon = -149.9; // Anchorage double x, y; proj.Forward(northp, lat, lon, out x, out y); Console.WriteLine(String.Format("{0} {1}", x, y)); } { // Sample reverse calculation double x = -1637e3, y = 2824e3; double lat, lon; proj.Reverse(northp, x, y, out lat, out lon); Console.WriteLine(String.Format("{0} {1}", lat, lon)); } } catch (GeographicErr e) { Console.WriteLine(String.Format("Caught exception: {0}", e.Message)); } } } }
Managed C++ Example:
using namespace System; using namespace NETGeographicLib; int main(array<System::String ^> ^/*args*/) { try { PolarStereographic^ proj = gcnew PolarStereographic(); // WGS84 bool northp = true; { // Sample forward calculation double lat = 61.2, lon = -149.9; // Anchorage double x, y; proj->Forward(northp, lat, lon, x, y); Console::WriteLine(String::Format("{0} {1}", x, y)); } { // Sample reverse calculation double x = -1637e3, y = 2824e3; double lat, lon; proj->Reverse(northp, x, y, lat, lon); Console::WriteLine(String::Format("{0} {1}", lat, lon)); } } catch (GeographicErr^ e) { Console::WriteLine(String::Format("Caught exception: {0}", e->Message)); return -1; } return 0; }
Visual Basic Example:
Imports NETGeographicLib
Module example_PolarStereographic
Sub Main()
Try
Dim proj As PolarStereographic = New PolarStereographic() ' WGS84
Dim northp As Boolean = True
' Sample forward calculation
Dim lat As Double = 61.2, lon = -149.9 ' Anchorage
Dim x, y As Double
proj.Forward(northp, lat, lon, x, y)
Console.WriteLine(String.Format("{0} {1}", x, y))
' Sample reverse calculation
x = -1637000.0 : y = 2824000.0
proj.Reverse(northp, x, y, lat, lon)
Console.WriteLine(String.Format("{0} {1}", lat, lon))
Catch ex As GeographicErr
Console.WriteLine(String.Format("Caught exception: {0}", ex.Message))
End Try
End Sub
End Module
INTERFACE DIFFERENCES:
A default constructor is provided that assumes WGS84 parameters and a UPS scale factor.
The MajorRadius, Flattening, and CentralScale functions are implemented as properties.
Definition at line 48 of file PolarStereographic.h.
| NETGeographicLib::PolarStereographic::PolarStereographic | ( | double | a, | |
| double | f, | |||
| double | k0 | |||
| ) |
Constructor for a ellipsoid with
| [in] | a | equatorial radius (meters). |
| [in] | f | flattening of ellipsoid. Setting f = 0 gives a sphere. Negative f gives a prolate ellipsoid. If f > 1, set flattening to 1/f. |
| [in] | k0 | central scale factor. |
| GeographicErr | if a, (1 f ) a, or k0 is not positive. |
| NETGeographicLib::PolarStereographic::PolarStereographic | ( | ) |
An instantiation of PolarStereographic with the WGS84 ellipsoid and the UPS scale factor.
Referenced by ~PolarStereographic().
| NETGeographicLib::PolarStereographic::~PolarStereographic | ( | ) | [inline] |
The destructor calls the finalizer.
Definition at line 80 of file PolarStereographic.h.
References PolarStereographic().
| void NETGeographicLib::PolarStereographic::SetScale | ( | double | lat, | |
| double | k | |||
| ) |
Set the scale for the projection.
| [in] | lat | (degrees) assuming northp = true. |
| [in] | k | scale at latitude lat |
| GeographicErr | k is not positive. | |
| GeographicErr | if lat is not in (90, 90] or this object was created with the default constructor. |
| void NETGeographicLib::PolarStereographic::Forward | ( | bool | northp, | |
| double | lat, | |||
| double | lon, | |||
| [System::Runtime::InteropServices::Out] double% | x, | |||
| [System::Runtime::InteropServices::Out] double% | y, | |||
| [System::Runtime::InteropServices::Out] double% | gamma, | |||
| [System::Runtime::InteropServices::Out] double% | k | |||
| ) |
Forward projection, from geographic to polar stereographic.
| [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; lon should be in the range [540, 540).
| void NETGeographicLib::PolarStereographic::Reverse | ( | bool | northp, | |
| double | x, | |||
| double | y, | |||
| [System::Runtime::InteropServices::Out] double% | lat, | |||
| [System::Runtime::InteropServices::Out] double% | lon, | |||
| [System::Runtime::InteropServices::Out] double% | gamma, | |||
| [System::Runtime::InteropServices::Out] double% | k | |||
| ) |
Reverse projection, from polar stereographic to geographic.
| [in] | northp | the pole which is the center of projection (true means north, false means south). |
| [in] | x | easting of point (meters). |
| [in] | y | northing of point (meters). |
| [out] | lat | latitude of point (degrees). |
| [out] | lon | longitude of point (degrees). |
| [out] | gamma | meridian convergence at point (degrees). |
| [out] | k | scale of projection at point. |
No false easting or northing is added. The value of lon returned is in the range [180, 180).
| void NETGeographicLib::PolarStereographic::Forward | ( | bool | northp, | |
| double | lat, | |||
| double | lon, | |||
| [System::Runtime::InteropServices::Out] double% | x, | |||
| [System::Runtime::InteropServices::Out] double% | y | |||
| ) |
PolarStereographic::Forward without returning the convergence and scale.
| void NETGeographicLib::PolarStereographic::Reverse | ( | bool | northp, | |
| double | x, | |||
| double | y, | |||
| [System::Runtime::InteropServices::Out] double% | lat, | |||
| [System::Runtime::InteropServices::Out] double% | lon | |||
| ) |
PolarStereographic::Reverse without returning the convergence and scale.
double NETGeographicLib::PolarStereographic::MajorRadius [get] |
Definition at line 159 of file PolarStereographic.h.
double NETGeographicLib::PolarStereographic::Flattening [get] |
Definition at line 165 of file PolarStereographic.h.
double NETGeographicLib::PolarStereographic::CentralScale [get] |
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 172 of file PolarStereographic.h.
1.6.1