Interface ILcdGeodeticDatum
- All Superinterfaces:
Serializable
- All Known Implementing Classes:
TLcdGeodeticDatum
ILcdGeodeticDatum
is comprised of an ellipsoid which is fixed
to the physical earth in some manner. It is used as a basis for positioning
points and defining the dimensions of the earth. It encompasses both a horizontal
and vertical datum. The horizontal datum is based on the ellipsoid while the vertical
datum is represented as a height function above this reference ellipsoid. A common
used height function is the EGM96 geoid model.
There are many geodetic datums in use around the world. Regional datums have
an ILcdEllipsoid
that approximates the shape of the geoid in a
limited region. Global datums have an ILcdEllipsoid
that
approximates the entire global geoid and have their center at the gravity
center of the earth. One cannot use results from interpreting values based
on one datum as if they were based on another datum because then position
errors are too large. An ILcdGeodeticDatum
provides a way to
perform geodetic datum conversions.
Classes implementing the ILcdGeodeticDatum
interface need
sufficient information to perform a transformation between the
geodetic datum and the geodetic datum that is chosen as a global reference
geodetic system (WGS_1984
ILcdEllipsoid
). This
transformation is typically described with 7 parameters: position shifts,
angular rotations and a scale. In some cases this transformation can also be
expressed with a simple 3-parameter transformation (only position shifts).
Transformations are not limited to linear transformations thought. It is possible
to create an implementation that performs non-linear transformations. One condition
is that transformations must be reversible.
More information on geodetic datums can be found on Geodetic Datum Overview by Peter H. Dana.
-
Method Summary
Modifier and TypeMethodDescriptionclone()
Clones thisILcdGeodeticDatum
.void
datum2refGeocSFCT
(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZOutSFCT) Conversion of geocentric coordinates from the geodetic datum into geocentric coordinates for the reference geodetic datum.void
datum2refLLHSFCT
(ILcdPoint aLLHPoint, ILcd3DEditablePoint aLLHOut) Conversion of geodetic coordinates from this geodetic datum into reference geodetic datum.boolean
Checks equality with another givenObject
.boolean
Checks whether the horizontal datum of thisILcdGeodeticDatum
is equal to another givenObject
's horizontal datum.void
geoc2llhSFCT
(ILcdPoint aXYZGeocPoint, ILcd3DEditablePoint aLLHPointSFCT) Coordinate conversion between Earth Centered, Earth Fixed XYZ Cartesian coordinate system and latitude-longitude-height for this geodetic datum.Gets the ellipsoid of theILcdGeodeticDatum
.double
getHeight
(double aLon, double aLat) Returns the height of the vertical datum of thisILcdGeodeticDatum
for the specified geodetic coordinates.getName()
Returns the name of theILcdGeodeticDatum
.Returns a vertical datum name, if this geodetic datum defines one.boolean
Returns whether the methodgetHeight
returns non zero height values.void
llh2geocSFCT
(ILcdPoint aLLHPoint, ILcd3DEditablePoint aXYZGeocPointSFCT) Coordinate conversion between latitude-longitude-height for this geodetic datum and Earth Centered, Earth Fixed XYZ Cartesian coordinate system.void
ref2datumGeocSFCT
(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZOutSFCT) Conversion of a geocentric coordinate (reference geodetic datum) into a geocentric coordinate of this geodetic datum.void
ref2datumLLHSFCT
(ILcdPoint aLLHPoint, ILcd3DEditablePoint aLLHOut) Conversion of geodetic coordinates from reference geodetic datum into this geodetic datum.
-
Method Details
-
getName
String getName()Returns the name of theILcdGeodeticDatum
.- Returns:
- the name of the
ILcdGeodeticDatum
.
-
getEllipsoid
ILcdEllipsoid getEllipsoid()Gets the ellipsoid of theILcdGeodeticDatum
.- Returns:
- the ellipsoid of the
ILcdGeodeticDatum
.
-
getHeight
double getHeight(double aLon, double aLat) Returns the height of the vertical datum of thisILcdGeodeticDatum
for the specified geodetic coordinates. These heights are expressed in meters with respect to the ellipsoid of thisILcdGeodeticDatum
.- Parameters:
aLon
- the longitude coordinate.aLat
- the latitude coordinate.- Returns:
- the ellipsoidal height of the vertical datum of this
ILcdGeodeticDatum
for the specified geodetic coordinates. - Since:
- 9.0
-
hasNonZeroHeights
boolean hasNonZeroHeights()Returns whether the methodgetHeight
returns non zero height values. The methodgetHeight
will always return0
, if this method returnsfalse
- Returns:
- true if the method
getHeight
returns non zero height values, false otherwise. - Since:
- 9.0
-
getVerticalDatumName
Returns a vertical datum name, if this geodetic datum defines one.- Returns:
- a vertical datum name, or an empty
Optional
if no vertical datum is present. - Since:
- 2018.0.02
-
datum2refGeocSFCT
Conversion of geocentric coordinates from the geodetic datum into geocentric coordinates for the reference geodetic datum.- Parameters:
aXYZPoint
- geocentric coordinate of geodetic datum.aXYZOutSFCT
- geocentric coordinate in reference geodetic datum as side effect.
-
ref2datumGeocSFCT
Conversion of a geocentric coordinate (reference geodetic datum) into a geocentric coordinate of this geodetic datum.- Parameters:
aXYZPoint
- geocentric coordinate in reference geodetic datum.aXYZOutSFCT
- geocentric coordinate in this geodetic datum as side effect.
-
datum2refLLHSFCT
Conversion of geodetic coordinates from this geodetic datum into reference geodetic datum.- Parameters:
aLLHPoint
- geodetic coordinate represented in this geodetic datum.aLLHOut
- geodetic coordinate in reference geodetic datum as side effect.
-
ref2datumLLHSFCT
Conversion of geodetic coordinates from reference geodetic datum into this geodetic datum.- Parameters:
aLLHPoint
- geodetic coordinate represented in reference geodetic datum.aLLHOut
- geodetic coordinate in this geodetic datum as side effect.
-
geoc2llhSFCT
Coordinate conversion between Earth Centered, Earth Fixed XYZ Cartesian coordinate system and latitude-longitude-height for this geodetic datum. The conversion only works within this geodetic datum.- Parameters:
aXYZGeocPoint
- geocentric 3D point.aLLHPointSFCT
- lonLatHeight coordinates to be set.- Since:
- 9.0
-
llh2geocSFCT
Coordinate conversion between latitude-longitude-height for this geodetic datum and Earth Centered, Earth Fixed XYZ Cartesian coordinate system. The conversion only works within this geodetic datum.- Parameters:
aLLHPoint
- lonLatHeight point.aXYZGeocPointSFCT
- Geocentric coordinates to be set.- Since:
- 9.0
-
equals
Checks equality with another givenObject
. -
equals2D
Checks whether the horizontal datum of thisILcdGeodeticDatum
is equal to another givenObject
's horizontal datum.- Parameters:
aGeodeticDatum
- Object to compare with.- Returns:
- true if the horizontal datum of both objects are equal, false otherwise.
- Since:
- 9.0
-
clone
Object clone()Clones thisILcdGeodeticDatum
.- Returns:
- Clone of this
ILcdGeodeticDatum
.
-