Ellipsoid

Struct Ellipsoid 

Source
pub struct Ellipsoid {
    pub type: Option<String>,
    pub name: String,
    pub semi_major_axis: Option<ValueInMetreOrValueAndUnit>,
    pub semi_minor_axis: Option<ValueInMetreOrValueAndUnit>,
    pub inverse_flattening: Option<ValueInMetreOrValueAndUnit>,
    pub radius: Option<ValueInMetreOrValueAndUnit>,
    pub id: Option<Id>,
    pub ids: Ids,
}
Expand description

§Ellipsoid

§Description

The <ellipsoid> object is an attribute of <geodetic reference frame>. It is not used with other types of datum.

ISO 19111 allows an oblate ellipsoid to be defined through semi-major axis (a) and either semi-minor axis (b) or inverse flattening (1/f). If semi-minor axis is used as the second defining parameter the value for inverse flattening to be shown in the WKT string should be calculated from $1/f = a / (a – b)$.

ISO 19111 also allows for the earth model to be a sphere, for which 1/f is infinite. In this document if the earth model is a sphere <inverse flattening> shall be given an artificial value of zero.

§Requirements:

a) The WKT representation of a sphere shall have an <inverse flattening> value of 0. b) <length unit> is an optional attribute, optional for reasons of backward compatibility, but it is recommended that it is explicitly included in WKT strings. Its <conversion factor> shall be to metres and is the number of metres per unit. <length unit> is described in 7.4. If it is omitted then the value for the length of the semi-axis or -axes shall be given in metres. Conversely, if it is omitted then the value for the semi-major axis shall be assumed to be in metres.

§Note:

  • In the WKT for a geodetic, geographic or projected CRS, the length unit for the ellipsoid may differ from the length unit for the coordinate system. The units in which coordinates are expressed are given by the CS element.
  • In this document the preferred keyword is ELLIPSOID. SPHEROID is permitted for backward compatibility. Implementations should be prepared to read both forms.

§Examples of WKT describing an ellipsoid:

  • ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1.0]]
  • SPHEROID["GRS 1980",6378137.0,298.257222101] (unit = metre is implied)
  • ELLIPSOID["Clark 1866",20925832.164,294.97869821, LENGTHUNIT["US survey foot",0.304800609601219]]
  • ELLIPSOID["Sphere",6371000,0,LENGTHUNIT["metre",1.0]]

The definition of WKT for a triaxial ellipsoid required for planetary mapping is given in Annex E.

Fields§

§type: Option<String>

Indicates the type of ellipsoid. Always “Ellipsoid” for this interface.

§name: String

The name of the ellipsoid.

§semi_major_axis: Option<ValueInMetreOrValueAndUnit>

The semi-major axis of the ellipsoid. Represented as a number or a value with a unit.

§semi_minor_axis: Option<ValueInMetreOrValueAndUnit>

The semi-minor axis of the ellipsoid. Represented as a number or a value with a unit. Required when inverse_flattening is not provided.

§inverse_flattening: Option<ValueInMetreOrValueAndUnit>

The inverse flattening of the ellipsoid. Required when semi_minor_axis is not provided.

§radius: Option<ValueInMetreOrValueAndUnit>

The radius of the ellipsoid, used for spherical representations. Required when neither semi_minor_axis nor inverse_flattening are provided.

§id: Option<Id>

An identifier for the datum ensemble.

§ids: Ids

An array of identifiers for the datum ensemble.

Implementations§

Source§

impl Ellipsoid

Source

pub fn to_projection_transform(&self, proj_transform: &mut ProjectionTransform)

Convert a Ellipsoid to a ProjectionTransform

Trait Implementations§

Source§

impl Clone for Ellipsoid

Source§

fn clone(&self) -> Ellipsoid

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Ellipsoid

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Ellipsoid

Source§

fn default() -> Ellipsoid

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Ellipsoid

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Ellipsoid

Source§

fn eq(&self, other: &Ellipsoid) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Ellipsoid

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToProjJSON for Ellipsoid

Source§

fn set_id(&mut self, id: Id)

Set an Id
Source§

fn set_usage(&mut self, _usage: ObjectUsage)

Set Usage
Source§

fn set_anchor(&mut self, _anchor: String)

Set an Anchor
Source§

fn set_unit(&mut self, _unit: Unit)

Set a Unit
Source§

fn set_axis(&mut self, _axis: Axis)

Set an Axis
Source§

fn set_coordinate_system(&mut self, _cs: CoordinateSystem)

Set a CoordinateSystem
Source§

fn set_temporal_extent(&mut self, _extent: TemporalExtent)

Set Temporal Extent
Source§

fn set_vertical_extent(&mut self, _extent: VerticalExtent)

Set Vertical Extent
Source§

fn set_bbox(&mut self, _bbox: ProjBBox)

Set Bounding Box
Source§

fn set_area(&mut self, _area: Option<String>)

Set Area
Source§

fn set_method(&mut self, _method: Method)

Set a Method
Source§

fn set_ensemble(&mut self, _ensemble: DatumEnsemble)

Set a DatumEnsemble
Source§

fn set_member(&mut self, _member: DatumEnsembleMember)

Set a Member
Source§

fn set_ellipsoid(&mut self, _ellipsoid: Ellipsoid)

Set an Ellipsoid
Source§

fn set_accuracy(&mut self, _accuracy: String)

Set Accuracy
Source§

fn set_epoch(&mut self, _epoch: f64)

Set Epoch
Source§

fn set_frame_epoch(&mut self, _epoch: f64)

Set a frame epoch
Source§

fn set_datum(&mut self, _datum: Datum)

Set a datum
Source§

fn set_parameter(&mut self, _parameter: ParameterValue)

Set a Parameter
Source§

fn set_meridian(&mut self, _meridian: Meridian)

Set a Meridian
Source§

fn set_prime_meridian(&mut self, _prime_meridian: PrimeMeridian)

Set a PrimeMeridian
Source§

fn set_conversion(&mut self, _conversion: Conversion)

Set a Conversion
Source§

fn set_geodetic_crs(&mut self, _geodetic_crs: GeodeticCRS)

Set a GeodeticCRS
Source§

fn set_projected_crs(&mut self, _projected_crs: ProjectedCRS)

Set a ProjectedCRS
Source§

fn set_projection(&mut self, _name: String)

Set the name
Source§

fn set_order(&mut self, _order: usize)

Set the order
Source§

impl WKTParser for Ellipsoid

Source§

fn from_wkt(val: &WKTValue) -> Self

Converts from WKT
Source§

impl StructuralPartialEq for Ellipsoid

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,