Package org.opengis.referencing.datum
Interface Ellipsoid
-
- All Superinterfaces:
IdentifiedObject
@UML(identifier="CD_Ellipsoid", specification=ISO_19111) public interface Ellipsoid extends IdentifiedObject
Geometric figure that can be used to describe the approximate shape of the earth. In mathematical terms, it is a surface formed by the rotation of an ellipse about its minor axis. An ellipsoid requires two defining parameters:- semi-major axis and inverse flattening, or
- semi-major axis and semi-minor axis.
- Since:
- 1.0
- See Also:
DatumAuthorityFactory.createEllipsoid(String),DatumFactory.createEllipsoid(Map, double, double, Unit),DatumFactory.createFlattenedSphere(Map, double, double, Unit)
Departure from OGC/ISO specification:
ISO 19111 defines the union namedsecondDefiningParameteras being eithersemiMinorAxisorinverseFlattening. Theunionconstruct (defined in some languages like C/C++) does not exist in Java. GeoAPI changed the interface to require both ellipsoidal parameters (in addition to thesemiMajorAxisparameter which is mandatory in any case), as was done in OGC 01-009. However, implementors could readily permit users to only provide one of the two parameters by creating a class which calculates the second parameter from the first. For precision, GeoAPI imports theisIvfDefinitiveattribute from OGC 01-009 to enable the user to establish which of the two parameters was used to define the instance.
-
-
Field Summary
-
Fields inherited from interface IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
-
-
Method Summary
Modifier and Type Method Description Unit<Length>getAxisUnit()Returns the linear unit of the semi-major and semi-minor axis values.doublegetInverseFlattening()Returns the value of the inverse of the flattening constant.doublegetSemiMajorAxis()Length of the semi-major axis of the ellipsoid.doublegetSemiMinorAxis()Length of the semi-minor axis of the ellipsoid.booleanisIvfDefinitive()Indicates if the inverse flattening is definitive for this ellipsoid.booleanisSphere()trueif the ellipsoid is degenerate and is actually a sphere.-
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
-
-
-
-
Method Detail
-
getAxisUnit
@UML(identifier="getAxisUnit", specification=OGC_01009) Unit<Length> getAxisUnit()
Returns the linear unit of the semi-major and semi-minor axis values.- Returns:
- the axis linear unit.
-
getSemiMajorAxis
@UML(identifier="semiMajorAxis", obligation=MANDATORY, specification=ISO_19111) double getSemiMajorAxis()
Length of the semi-major axis of the ellipsoid. This is the equatorial radius in axis linear unit.- Returns:
- length of semi-major axis.
- Unit:
- Length
-
getSemiMinorAxis
@UML(identifier="secondDefiningParameter.semiMinorAxis", obligation=CONDITIONAL, specification=ISO_19111) double getSemiMinorAxis()
Length of the semi-minor axis of the ellipsoid. This is the polar radius in axis linear unit.- Returns:
- length of semi-minor axis.
- Unit:
- Length
-
getInverseFlattening
@UML(identifier="secondDefiningParameter.inverseFlattening", obligation=CONDITIONAL, specification=ISO_19111) double getInverseFlattening()
Returns the value of the inverse of the flattening constant. The inverse flattening is related to the equatorial/polar radius by the formula ivf = re/(re-rp). For perfect spheres (i.e. ifisSphere()returnstrue), thePOSITIVE_INFINITYvalue is used.- Returns:
- the inverse flattening value.
- Unit:
- Scale
-
isIvfDefinitive
@UML(identifier="CS_Ellipsoid.isIvfDefinitive", obligation=CONDITIONAL, specification=OGC_01009) boolean isIvfDefinitive()
Indicates if the inverse flattening is definitive for this ellipsoid. Some ellipsoids use the IVF as the defining value, and calculate the polar radius whenever asked. Other ellipsoids use the polar radius to calculate the IVF whenever asked. This distinction can be important to avoid floating-point rounding errors.- Returns:
trueif the inverse flattening is definitive, orfalseif the polar radius is definitive.
-
isSphere
@UML(identifier="secondDefiningParameter.isSphere", obligation=CONDITIONAL, specification=ISO_19111) boolean isSphere()
trueif the ellipsoid is degenerate and is actually a sphere. The sphere is completely defined by the semi-major axis, which is the radius of the sphere.- Returns:
trueif the ellipsoid is degenerate and is actually a sphere.
-
-