pub struct EcefPoint { /* private fields */ }Expand description
Earth-centred, Earth-fixed Cartesian point, metres.
Origin at the centre of mass; x towards 0°N 0°E, z towards the north
pole, y towards 0°N 90°E. Reached from a GeodeticPoint via an
Ellipsoid, and only from an ellipsoidal height: MSL heights need a geoid
model, which this crate does not provide.
Implementations§
Source§impl EcefPoint
impl EcefPoint
Sourcepub fn from_geodetic(
point: GeodeticPoint,
ellipsoid: &Ellipsoid,
) -> Result<Self>
pub fn from_geodetic( point: GeodeticPoint, ellipsoid: &Ellipsoid, ) -> Result<Self>
ECEF coordinates of a geodetic point on an ellipsoid.
§Errors
KernelError::VerticalDatumMismatch unless the height is ellipsoidal;
MSL heights need a geoid model supplied by an adapter.
Sourcepub fn to_geodetic(self, ellipsoid: &Ellipsoid) -> Result<GeodeticPoint>
pub fn to_geodetic(self, ellipsoid: &Ellipsoid) -> Result<GeodeticPoint>
Geodetic point and ellipsoidal height on an ellipsoid.
Bowring (1985) closed form: no iteration, sub-millimetre from the
surface to satellite altitudes. Round trip with
EcefPoint::from_geodetic holds to 1e-9° and 1e-3 m, poles and
antimeridian included (property-tested).
§Errors
KernelError::Indeterminate at the Earth’s centre, and for points so
close to the polar axis inside the Earth that the geodetic height is
undefined.