LuciadCPillar C# 2023.1.02
|
Provides geodesy calculations. More...
Public Member Functions | |
void | Dispose () |
double? | Distance2D (Luciad.Cartesian.Coordinate p1, Luciad.Cartesian.Coordinate p2) |
Calculates the distance to go from point p1 to point p2. More... | |
double? | Distance3D (Luciad.Cartesian.Coordinate p1, Luciad.Cartesian.Coordinate p2) |
Calculates the distance to go from point p1 to point p2. More... | |
Luciad.Cartesian.? Coordinate | Extrapolate2D (Luciad.Cartesian.Coordinate p1, Luciad.Cartesian.Azimuth azimuth, double distance) |
Determines the point located in the given direction and distance from point p1. More... | |
Luciad.Cartesian.? Azimuth | ForwardAzimuth2D (Luciad.Cartesian.Coordinate p1, Luciad.Cartesian.Coordinate p2) |
Calculates the forward azimuth to go from point p1 to point p2. More... | |
Luciad.Cartesian.? Coordinate | Interpolate (Luciad.Cartesian.Coordinate p1, Luciad.Cartesian.Coordinate p2, double fraction) |
Calculates the point at a fraction of the distance (over ground) between point p1 and point p2. More... | |
Static Public Member Functions | |
static Luciad.Geodesy.GeodesyCalculations | Create (Luciad.Geodesy.CoordinateReference reference, Luciad.Geodesy.LineInterpolationType lineType) |
Factory to create geodesy implementations for a given coordinate reference and line type. More... | |
Provides geodesy calculations.
Distance between two points. Azimuth to go from one point to another. Calculate point from a given start point, azimuth and distance.
All methods return an optional value. As transformations may be involved during the calculations, there may not always be a result.
|
inlinestatic |
Factory to create geodesy implementations for a given coordinate reference and line type.
The reference can be ellipsoidal or cartesian. Overview of supported combinations
The following table shows which combinations of coordinate references and line types are supported by the factory.
Coordinate Reference
Linear
Geodesic
Rhumbline
Geographic CRS
yes
yes
yes
Projected CRS
yes
yes
yes
Geocentric CRS
yes
yes
yes
non-georeferenced
no
no
no
Implementation notes
Geographic, Projected, Geocentric - Geodesic, Rhumbline
The calculations are performed on the ellipsoid associated with the coordinate reference. Points are first transformed to the ellipsoid coordinates to perform the calculation. Results are transformed back to the coordinate reference. Projected, Geocentric - Linear
The standard cartesian implementation of the methods. No specific (point) transformations are done. Geographic - Linear
Performs cartesian calculations on the geographic points. The implementation takes following characteristics of geographic coordinates into account: wrap-around over the 180° meridian. stop at 90° latitude and -90° latitude.
Example usage
reference
the coordinate reference on which to perform the geodesy calculations, cannot be nullptr.
lineType
the type of interpolation for the lines.
InvalidArgumentException
when no GeodesyCalculations can be created. This may be due to an unsupported combination of reference and line interpolation type or when the coordinate reference is nullptr.
|
inline |
|
inline |
Calculates the distance to go from point p1 to point p2.
This is the distance over ground. The height information is ignored.
p1
The start point.
p2
The end point.
the distance, or std::nullopt.
|
inline |
Calculates the distance to go from point p1 to point p2.
The distance calculations take the heights of the given points into account.
p1
The start point.
p2
The end point.
the distance, or std::nullopt.
|
inline |
Determines the point located in the given direction and distance from point p1.
The height information is assumed to be constant.
p1
The start point.
azimuth
The forward azimuth.
distance
The distance (over ground).
the point located located in the given direction and distance from point p1, or std::nullopt.
|
inline |
Calculates the forward azimuth to go from point p1 to point p2.
p1
The start point.
p2
The end point.
the forward azimuth, or std::nullopt.
|
inline |
Calculates the point at a fraction of the distance (over ground) between point p1 and point p2.
The height information is linearly interpolated.
p1
The start point.
p2
The end point.
fraction
The fraction value within the range [0,1].
the point located at the fraction along the line [p1,p2], or std::nullopt.