Crate unit_sphere
source ·Expand description
§unit-sphere
A library for performing geometric calculations on the surface of a sphere.
The library uses a combination of spherical trigonometry and vector geometry to perform great-circle navigation on the surface of a unit sphere, see Figure 1.
Figure 1 A Great Circle Path
A great circle is the
shortest path between positions on the surface of a sphere.
It is the spherical equivalent of a straight line in planar geometry.
§Spherical trigonometry
A great circle path between positions may be found using spherical trigonometry.
The course
(initial azimuth) of a great circle can be calculated from the
latitudes and longitudes of the start and end points.
While great circle distance can also be calculated from the latitudes and
longitudes of the start and end points using the
haversine formula.
The resulting distance in Radians
can be converted to the required units by
multiplying the distance by the Earth radius measured in the required units.
§Vector geometry
Points on the surface of a sphere and great circle poles may be represented
by 3D vectors.
Many calculations are simpler using vectors than spherical trigonometry.
For example, the across track distance of a point from a great circle can
be calculated from the dot product
of the point and the great circle pole vectors.
While intersection points of great circles can simply be calculated from
the cross product of their
pole vectors.
§Design
The great_circle
module performs spherical trigonometric calculations
and the vector
module performs vector geometry calculations.
The library is declared no_std so it can be used in embedded applications.
Modules§
- The
great_circle
module contains functions for calculating the course and distance between points along great circles on a unit sphere. - The
vector
module contains functions for performing great circle calculations using vectors to represent points and great circle poles on a unit sphere.
Structs§
- An angle represented by it’s sine and cosine as
UnitNegRanges
. - An arc of a Great Circle on a unit sphere.
- The Degrees newtype an f64.
- A position as a latitude and longitude pair of
Degrees
. - The Radians newtype an f64.
Traits§
- The Validate trait.
Functions§
- Calculate the azimuth and distance along the great circle of point b from point a.
- Calculate the distances along a pair of Arcs on the same (or reciprocal) Great Circles to their closest intersection or reference points.
- Calculate whether a pair of Arcs intersect and (if so) where.
- Test whether a latitude in degrees is a valid latitude.
I.e. whether it lies in the range: -90.0 <= degrees <= 90.0 - Test whether a longitude in degrees is a valid longitude.
I.e. whether it lies in the range: -180.0 <= degrees <= 180.0 - Calculate the latitude of a Point.
- Calculate the longitude of a Point.
Type Aliases§
- A
Vector3d
is a nalgebra Vector3.