#include <NETGeographicLib/PolygonArea.h>
|
| PolygonAreaExact (GeodesicExact^ earth, bool polyline) |
|
| PolygonAreaExact (const bool polyline) |
|
| ~PolygonAreaExact () |
|
void | Clear () |
|
void | AddPoint (double lat, double lon) |
|
void | AddEdge (double azi, double s) |
|
unsigned | Compute (bool reverse, bool sign, [System::Runtime::InteropServices::Out] double% perimeter, [System::Runtime::InteropServices::Out] double% area) |
|
unsigned | TestPoint (double lat, double lon, bool reverse, bool sign, [System::Runtime::InteropServices::Out] double% perimeter, [System::Runtime::InteropServices::Out] double% area) |
|
unsigned | TestEdge (double azi, double s, bool reverse, bool sign, [System::Runtime::InteropServices::Out] double% perimeter, [System::Runtime::InteropServices::Out] double% area) |
|
|
double | MajorRadius [get] |
|
double | Flattening [get] |
|
void | CurrentPoint ([System::Runtime::InteropServices::Out] double% lat, [System::Runtime::InteropServices::Out] double% lon) |
|
Definition at line 221 of file PolygonArea.h.
◆ PolygonAreaExact() [1/2]
NETGeographicLib::PolygonAreaExact::PolygonAreaExact |
( |
GeodesicExact^ |
earth, |
|
|
bool |
polyline |
|
) |
| |
Constructor for PolygonArea.
- Parameters
-
[in] | earth | the Geodesic object to use for geodesic calculations. |
[in] | polyline | if true that treat the points as defining a polyline instead of a polygon. |
◆ PolygonAreaExact() [2/2]
NETGeographicLib::PolygonAreaExact::PolygonAreaExact |
( |
const bool |
polyline | ) |
|
Constructor for PolygonArea that assumes a WGS84 ellipsoid.
- Parameters
-
[in] | polyline | if true that treat the points as defining a polyline instead of a polygon. |
◆ ~PolygonAreaExact()
NETGeographicLib::PolygonAreaExact::~PolygonAreaExact |
( |
| ) |
|
|
inline |
◆ Clear()
void NETGeographicLib::PolygonAreaExact::Clear |
( |
| ) |
|
Clear PolygonArea, allowing a new polygon to be started.
◆ AddPoint()
void NETGeographicLib::PolygonAreaExact::AddPoint |
( |
double |
lat, |
|
|
double |
lon |
|
) |
| |
Add a point to the polygon or polyline.
- Parameters
-
[in] | lat | the latitude of the point (degrees). |
[in] | lon | the longitude of the point (degrees). |
lat should be in the range [−90°, 90°] and lon should be in the range [−540°, 540°).
◆ AddEdge()
void NETGeographicLib::PolygonAreaExact::AddEdge |
( |
double |
azi, |
|
|
double |
s |
|
) |
| |
Add an edge to the polygon or polyline.
- Parameters
-
[in] | azi | azimuth at current point (degrees). |
[in] | s | distance from current point to next point (meters). |
azi should be in the range [−540°, 540°). This does nothing if no points have been added yet. Use PolygonArea::CurrentPoint to determine the position of the new vertex.
◆ Compute()
unsigned NETGeographicLib::PolygonAreaExact::Compute |
( |
bool |
reverse, |
|
|
bool |
sign, |
|
|
[System::Runtime::InteropServices::Out] double% |
perimeter, |
|
|
[System::Runtime::InteropServices::Out] double% |
area |
|
) |
| |
Return the results so far.
- Parameters
-
[in] | reverse | if true then clockwise (instead of counter-clockwise) traversal counts as a positive area. |
[in] | sign | if true then return a signed result for the area if the polygon is traversed in the "wrong" direction instead of returning the area for the rest of the earth. |
[out] | perimeter | the perimeter of the polygon or length of the polyline (meters). |
[out] | area | the area of the polygon (meters2); only set if polyline is false in the constructor. |
- Returns
- the number of points.
◆ TestPoint()
unsigned NETGeographicLib::PolygonAreaExact::TestPoint |
( |
double |
lat, |
|
|
double |
lon, |
|
|
bool |
reverse, |
|
|
bool |
sign, |
|
|
[System::Runtime::InteropServices::Out] double% |
perimeter, |
|
|
[System::Runtime::InteropServices::Out] double% |
area |
|
) |
| |
Return the results assuming a tentative final test point is added; however, the data for the test point is not saved. This lets you report a running result for the perimeter and area as the user moves the mouse cursor. Ordinary floating point arithmetic is used to accumulate the data for the test point; thus the area and perimeter returned are less accurate than if PolygonArea::AddPoint and PolygonArea::Compute are used.
- Parameters
-
[in] | lat | the latitude of the test point (degrees). |
[in] | lon | the longitude of the test point (degrees). |
[in] | reverse | if true then clockwise (instead of counter-clockwise) traversal counts as a positive area. |
[in] | sign | if true then return a signed result for the area if the polygon is traversed in the "wrong" direction instead of returning the area for the rest of the earth. |
[out] | perimeter | the approximate perimeter of the polygon or length of the polyline (meters). |
[out] | area | the approximate area of the polygon (meters2); only set if polyline is false in the constructor. |
- Returns
- the number of points.
lat should be in the range [−90°, 90°] and lon should be in the range [−540°, 540°).
◆ TestEdge()
unsigned NETGeographicLib::PolygonAreaExact::TestEdge |
( |
double |
azi, |
|
|
double |
s, |
|
|
bool |
reverse, |
|
|
bool |
sign, |
|
|
[System::Runtime::InteropServices::Out] double% |
perimeter, |
|
|
[System::Runtime::InteropServices::Out] double% |
area |
|
) |
| |
Return the results assuming a tentative final test point is added via an azimuth and distance; however, the data for the test point is not saved. This lets you report a running result for the perimeter and area as the user moves the mouse cursor. Ordinary floating point arithmetic is used to accumulate the data for the test point; thus the area and perimeter returned are less accurate than if PolygonArea::AddEdge and PolygonArea::Compute are used.
- Parameters
-
[in] | azi | azimuth at current point (degrees). |
[in] | s | distance from current point to final test point (meters). |
[in] | reverse | if true then clockwise (instead of counter-clockwise) traversal counts as a positive area. |
[in] | sign | if true then return a signed result for the area if the polygon is traversed in the "wrong" direction instead of returning the area for the rest of the earth. |
[out] | perimeter | the approximate perimeter of the polygon or length of the polyline (meters). |
[out] | area | the approximate area of the polygon (meters2); only set if polyline is false in the constructor. |
- Returns
- the number of points.
azi should be in the range [−540°, 540°).
◆ CurrentPoint()
void NETGeographicLib::PolygonAreaExact::CurrentPoint |
( |
[System::Runtime::InteropServices::Out] double% |
lat, |
|
|
[System::Runtime::InteropServices::Out] double% |
lon |
|
) |
| |
Report the previous vertex added to the polygon or polyline.
- Parameters
-
[out] | lat | the latitude of the point (degrees). |
[out] | lon | the longitude of the point (degrees). |
If no points have been added, then NaNs are returned. Otherwise, lon will be in the range [−180°, 180°).
◆ MajorRadius
double NETGeographicLib::PolygonAreaExact::MajorRadius |
|
get |
- Returns
- a the equatorial radius of the ellipsoid (meters). This is the value inherited from the Geodesic object used in the constructor.
Definition at line 366 of file PolygonArea.h.
◆ Flattening
double NETGeographicLib::PolygonAreaExact::Flattening |
|
get |
- Returns
- f the flattening of the ellipsoid. This is the value inherited from the Geodesic object used in the constructor.
Definition at line 372 of file PolygonArea.h.
The documentation for this class was generated from the following file: