@UML(identifier="CD_Ellipsoid", specification=ISO_19111) public interface Ellipsoid extends IdentifiedObject
There is not just one ellipsoid. An ellipsoid is a matter of choice, and therefore many choices are possible. The size and shape of an ellipsoid was traditionally chosen such that the surface of the geoid is matched as closely as possible locally, e.g. in a country. A number of global bestfit ellipsoids are now available. An association of an ellipsoid with the earth is made through the definition of the size and shape of the ellipsoid and the position and orientation of this ellipsoid with respect to the earth. Collectively this choice is captured by the concept of "geodetic datum". A change of size, shape, position or orientation of an ellipsoid will result in a change of geographic coordinates of a point and be described as a different geodetic datum. Conversely geographic coordinates are unambiguous only when associated with a geodetic datum.
Departure from OGC/ISO specification:
ISO 19111 defines the union namedsecondDefiningParameter
as being eithersemiMinorAxis
orinverseFlattening
. Theunion
construct (defined in some languages like C/C++) does not exist in Java. GeoAPI changed the interface to require both ellipsoidal parameters (in addition to thesemiMajorAxis
parameter which is mandatory in any case), as was done in OGC 01009. 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 theisIvfDefinitive
attribute from OGC 01009 to enable the user to establish which of the two parameters was used to define the instance.
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
Modifier and Type  Method and Description 

Unit<Length> 
getAxisUnit()
Returns the linear unit of the semimajor
and semiminor axis values.

double 
getInverseFlattening()
Returns the value of the inverse of the flattening constant.

double 
getSemiMajorAxis()
Length of the semimajor axis of the ellipsoid.

double 
getSemiMinorAxis()
Length of the semiminor axis of the ellipsoid.

boolean 
isIvfDefinitive()
Indicates if the inverse flattening is definitive for
this ellipsoid.

boolean 
isSphere()
true if the ellipsoid is degenerate and is actually a sphere. 
getAlias, getIdentifiers, getName, getRemarks, toWKT
@UML(identifier="getAxisUnit", specification=OGC_01009) Unit<Length> getAxisUnit()
@UML(identifier="semiMajorAxis", obligation=MANDATORY, specification=ISO_19111) double getSemiMajorAxis()
@UML(identifier="secondDefiningParameter.semiMinorAxis", obligation=CONDITIONAL, specification=ISO_19111) double getSemiMinorAxis()
@UML(identifier="secondDefiningParameter.inverseFlattening", obligation=CONDITIONAL, specification=ISO_19111) double getInverseFlattening()
isSphere()
returns true
),
the POSITIVE_INFINITY
value is used.@UML(identifier="CS_Ellipsoid.isIvfDefinitive", obligation=CONDITIONAL, specification=OGC_01009) boolean isIvfDefinitive()
true
if the inverse flattening is
definitive, or false
if the polar radius
is definitive.@UML(identifier="secondDefiningParameter.isSphere", obligation=CONDITIONAL, specification=ISO_19111) boolean isSphere()
true
if the ellipsoid is degenerate and is actually a sphere. The sphere is
completely defined by the semimajor axis, which is the
radius of the sphere.true
if the ellipsoid is degenerate and is actually a sphere.Copyright © 1994–2019 Open Geospatial Consortium. All rights reserved.