LuciadCPillar C# 2023.1.02
Luciad.Geodesy.GeodesyCalculations Class Reference

Provides geodesy calculations. More...

Inheritance diagram for Luciad.Geodesy.GeodesyCalculations:

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...
 

Detailed Description

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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations.

Member Function Documentation

◆ Create()

Luciad.Geodesy.GeodesyCalculations Luciad.Geodesy.GeodesyCalculations.Create ( Luciad.Geodesy.CoordinateReference  reference,
Luciad.Geodesy.LineInterpolationType  lineType 
)
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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations::create.

◆ Dispose()

void Luciad.Geodesy.GeodesyCalculations.Dispose ( )
inline

◆ Distance2D()

double Luciad.Geodesy.GeodesyCalculations.Distance2D ( Luciad.Cartesian.Coordinate  p1,
Luciad.Cartesian.Coordinate  p2 
)
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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations::distance2D.

◆ Distance3D()

double Luciad.Geodesy.GeodesyCalculations.Distance3D ( Luciad.Cartesian.Coordinate  p1,
Luciad.Cartesian.Coordinate  p2 
)
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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations::distance3D.

◆ Extrapolate2D()

Luciad.Cartesian.Coordinate Luciad.Geodesy.GeodesyCalculations.Extrapolate2D ( Luciad.Cartesian.Coordinate  p1,
Luciad.Cartesian.Azimuth  azimuth,
double  distance 
)
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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations::extrapolate2D.

◆ ForwardAzimuth2D()

Luciad.Cartesian.Azimuth Luciad.Geodesy.GeodesyCalculations.ForwardAzimuth2D ( Luciad.Cartesian.Coordinate  p1,
Luciad.Cartesian.Coordinate  p2 
)
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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations::forwardAzimuth2D.

◆ Interpolate()

Luciad.Cartesian.Coordinate Luciad.Geodesy.GeodesyCalculations.Interpolate ( Luciad.Cartesian.Coordinate  p1,
Luciad.Cartesian.Coordinate  p2,
double  fraction 
)
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.

Warning
C# documentation translation is incomplete. You can find more information in the C++ documentation for luciad::GeodesyCalculations::interpolate.