Class TLcdGeodeticDatum

java.lang.Object
com.luciad.geodesy.TLcdGeodeticDatum
All Implemented Interfaces:
ILcdGeodeticDatum, ILcdCloneable, Serializable, Cloneable

public class TLcdGeodeticDatum extends Object implements ILcdGeodeticDatum, ILcdCloneable
A geodetic datum TLcdGeodeticDatum is described by the position, orientation and scale relationships of its ILcdEllipsoid to an earth centered earth fixed ILcdEllipsoid. In other words, this provides sufficient information to perform a linear transformation between the geodetic datum and the global reference geodetic system based on 11 parameters: position shifts, angular rotations, a scale, a pivot point, and a prime meridian.

The simplest transformation is a 3-parameter transformation based on the two ILcdEllipsoid objects and the position shifts.

A more complex transformation is the Helmert 7-parameter transformation based on the two ILcdEllipsoid objects and the position shifts, angular rotations and scale. The pivot is (0,0,0) in this case.

The most complex transformation is the Molodensky-Badekas 10-parameter transformation. This transformation is the same as the Helmert 7-parameter transformation, but additionally it uses a non-zero pivot point.

This class is thread-safe for read-only access, provided that any custom ILcdEllipsoid set onto the current object is also thread-safe for read-only access.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    A geodetic datum is complex if it is not simple and not a reference geodetic datum.
    static final int
    A geodetic datum is a reference geodetic datum if it is not defined with respect to another geodetic datum, i.e., its ILcdEllipsoid is considered earth centered earth fixed.
    static final int
    A geodetic datum is simple if only position shifts are defined for the datum conversion.
    static final int
    This is used for geodetic daumts using the Molodensky-Badekas 10-parameter transformation.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor creates a reference geodetic datum (WGS84).
    TLcdGeodeticDatum(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, double aPrimeMeridian, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
    Definition of a local complex datum.
    TLcdGeodeticDatum(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
    Definition of a local complex datum.
    TLcdGeodeticDatum(double aX, double aY, double aZ, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aReferenceDatum, String aName)
    Definition of a local simple geodetic datum.
    Definition of a global geodetic datum.
    Definition of a local complex geodetic datum.
  • Method Summary

    Modifier and Type
    Method
    Description
    Clones this ILcdGeodeticDatum.
    void
    Conversion of geocentric datum coordinate to geocentric reference datum coordinate.
    void
    Conversion of geodetic datum coordinate to geodetic reference datum coordinate.
    boolean
    equals(Object aObject)
    Checks whether the two geodetic datums are exactly equal.
    boolean
    equals2D(Object aObject)
    Checks whether the horizontal datum parts of the two geodetic datums are exactly equal.
    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.
    Returns the ILcdEllipsoid of the subject geodetic datum.
    double
    getHeight(double aLon, double aLat)
    Returns the height of the vertical datum of this ILcdGeodeticDatum for the specified geodetic coordinates.
    Gets the name of this ILcdGeodeticDatum.
    double
    Returns the x component of the pivot point
    double
    Returns the y component of the pivot point
    double
    Returns the z component of the pivot point
    double
    Returns the prime meridian in degrees longitude.
    Gets the reference geodetic datum.
    double
    X rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
    double
    Y rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
    double
    Z rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
    double
    Scale factor.
    int
    Gives an indication of the complexity of computations when transforming to/from the reference geodetic datum.
    Returns a vertical datum name, if this geodetic datum defines one.
    double
    X coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
    double
    Y coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
    double
    Z coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
    int
     
    boolean
    Returns whether the method getHeight returns non zero height values.
    void
    initialize(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, double aPrimeMeridian, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
    Definition of a local complex geodetic datum.
    void
    initialize(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
    Deprecated.
    use the method with 8 parameters, containing the prime meridian.
    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
    Conversion of geocentric reference datum coordinate to geocentric datum coordinate.
    void
    Conversion of geodetic reference datum coordinate to geodetic datum coordinate.
    void
    Sets the ILcdEllipsoid of the subject geodetic datum.
    void
    setName(String aName)
    Sets the name of this ILcdGeodeticDatum.
    void
    setPivotX(double aPivotX)
    Sets the x component of the pivot point that is used for the Molodensky-Badekas 10-parameter transformation.
    void
    setPivotY(double aPivotY)
    Sets the y component of the pivot point that is used for the Molodensky-Badekas 10-parameter transformation.
    void
    setPivotZ(double aPivotZ)
    Sets the z component of the pivot point that is used for the Molodensky-Badekas 10-parameter transformation.
    void
    setPrimeMeridian(double aPrimeMeridian)
    Sets the prime meridian in degrees longitude of this geodetic datum.
    void
    Sets the reference geodetic datum.
    void
    setRotX(double aRotX)
    Sets the X rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
    void
    setRotY(double aRotY)
    Sets the Y rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
    void
    setRotZ(double aRotZ)
    Sets the Z rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
    void
    setScale(double aScale)
    Sets the scale factor.
    void
    setX(double aX)
    Sets the X coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
    void
    setY(double aY)
    Sets the Y coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
    void
    setZ(double aZ)
    Sets the Z coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
    Returns a String representation of this ILcdGeodeticDatum.

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • REFERENCE

      public static final int REFERENCE
      A geodetic datum is a reference geodetic datum if it is not defined with respect to another geodetic datum, i.e., its ILcdEllipsoid is considered earth centered earth fixed. A reference geodetic datum has no translation, no rotation, scale equal to 1.0 and a prime meridian equal to 0.0.
      See Also:
    • SIMPLE

      public static final int SIMPLE
      A geodetic datum is simple if only position shifts are defined for the datum conversion. A geodetic datum is considered simple if one of the translation parameters is different from 0.0, but no rotation is defined, the scale is equal to 1.0, all pivot value are 0.0 and the prime meridian is equal to 0.0.
      See Also:
    • COMPLEX

      public static final int COMPLEX
      A geodetic datum is complex if it is not simple and not a reference geodetic datum.
      See Also:
    • TEN_PARAMETER

      public static final int TEN_PARAMETER
      This is used for geodetic daumts using the Molodensky-Badekas 10-parameter transformation. This transformation is the same as the Helmert 7-parameter transformation, but additionally it uses a non-zero pivot point.
      Since:
      2023.1
      See Also:
  • Constructor Details

    • TLcdGeodeticDatum

      public TLcdGeodeticDatum()
      Default constructor creates a reference geodetic datum (WGS84).
    • TLcdGeodeticDatum

      public TLcdGeodeticDatum(ILcdEllipsoid aEllipsoid, String aName)
      Definition of a global geodetic datum.
      Parameters:
      aEllipsoid - ellipsoid of the global geodetic datum.
      aName - name of the global geodetic datum.
    • TLcdGeodeticDatum

      public TLcdGeodeticDatum(double aX, double aY, double aZ, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aReferenceDatum, String aName)
      Definition of a local simple geodetic datum.
      Parameters:
      aX - x-axis position shift w.r.t. reference datum.
      aY - y-axis position shift w.r.t. reference datum.
      aZ - z-axis position shift w.r.t. reference datum.
      aEllipsoid - ellipsoid of the geodetic datum.
      aReferenceDatum - reference geodetic datum.
      aName - name of this geodetic datum.
    • TLcdGeodeticDatum

      public TLcdGeodeticDatum(TLcdGeodeticDatum aGeodeticDatum)
      Definition of a local complex geodetic datum.
      Parameters:
      aGeodeticDatum - geodetic datum to clone.
    • TLcdGeodeticDatum

      public TLcdGeodeticDatum(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
      Definition of a local complex datum.
      Parameters:
      aX - x-axis position shift w.r.t. reference datum.
      aY - y-axis position shift w.r.t. reference datum.
      aZ - z-axis position shift w.r.t. reference datum.
      aRotX - rotation around x-axis.
      aRotY - rotation around y-axis.
      aRotZ - rotation around z-axis.
      aScale - scale factor.
      aEllipsoid - ellipsoid of this geodetic datum.
      aRefDatum - reference geodetic datum.
      aName - name for this geodetic datum.
      See Also:
    • TLcdGeodeticDatum

      public TLcdGeodeticDatum(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, double aPrimeMeridian, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
      Definition of a local complex datum.
      Parameters:
      aX - x-axis position shift w.r.t. reference datum.
      aY - y-axis position shift w.r.t. reference datum.
      aZ - z-axis position shift w.r.t. reference datum.
      aRotX - rotation around x-axis.
      aRotY - rotation around y-axis.
      aRotZ - rotation around z-axis.
      aScale - scale factor.
      aPrimeMeridian - prime meridian.
      aEllipsoid - ellipsoid of this geodetic datum.
      aRefDatum - reference geodetic datum.
      aName - name for this geodetic datum.
      See Also:
  • Method Details

    • setX

      public void setX(double aX)
      Sets the X coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      Parameters:
      aX - the X coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      See Also:
    • getX

      public double getX()
      X coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      Returns:
      The x value.
      See Also:
    • setY

      public void setY(double aY)
      Sets the Y coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      Parameters:
      aY - the Y coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      See Also:
    • getY

      public double getY()
      Y coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      Returns:
      The y value.
      See Also:
    • setZ

      public void setZ(double aZ)
      Sets the Z coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      Parameters:
      aZ - the Z coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      See Also:
    • getZ

      public double getZ()
      Z coordinate of ILcdEllipsoid origin with respect to reference ILcdEllipsoid cartesian coordinate system.
      Returns:
      The z value.
      See Also:
    • setRotX

      public void setRotX(double aRotX)
      Sets the X rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      Parameters:
      aRotX - the X rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      See Also:
    • getRotX

      public double getRotX()
      X rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      Returns:
      The rotX value.
      See Also:
    • setRotY

      public void setRotY(double aRotY)
      Sets the Y rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      Parameters:
      aRotY - the Y rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      See Also:
    • getRotY

      public double getRotY()
      Y rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      Returns:
      The rotY value.
      See Also:
    • setRotZ

      public void setRotZ(double aRotZ)
      Sets the Z rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      Parameters:
      aRotZ - the Z rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      See Also:
    • getRotZ

      public double getRotZ()
      Z rotation in radians (positive counterclockwise) with respect to reference ILcdEllipsoid cartesian coordinate system.
      Returns:
      The rotZ value.
      See Also:
    • setScale

      public void setScale(double aScale)
      Sets the scale factor.
      Parameters:
      aScale - the scale factor.
      See Also:
    • getScale

      public double getScale()
      Scale factor.
      Returns:
      The scale value.
      See Also:
    • setPivotX

      public void setPivotX(double aPivotX)
      Sets the x component of the pivot point that is used for the Molodensky-Badekas 10-parameter transformation. When all 3 components (x, y and z) of the pivot are 0, this simplifies to a Helmert 7-parameter transformation.
      Parameters:
      aPivotX - the x component of the pivot point
      Since:
      2023.1
    • getPivotX

      public double getPivotX()
      Returns the x component of the pivot point
      Returns:
      the x component of the pivot point
      Since:
      2023.1
      See Also:
    • setPivotY

      public void setPivotY(double aPivotY)
      Sets the y component of the pivot point that is used for the Molodensky-Badekas 10-parameter transformation. When all 3 components (x, y and z) of the pivot are 0, this simplifies to a Helmert 7-parameter transformation.
      Parameters:
      aPivotY - the y component of the pivot point
      Since:
      2023.1
    • getPivotY

      public double getPivotY()
      Returns the y component of the pivot point
      Returns:
      the y component of the pivot point
      Since:
      2023.1
      See Also:
    • setPivotZ

      public void setPivotZ(double aPivotZ)
      Sets the z component of the pivot point that is used for the Molodensky-Badekas 10-parameter transformation. When all 3 components (x, y and z) of the pivot are 0, this simplifies to a Helmert 7-parameter transformation.
      Parameters:
      aPivotZ - the z component of the pivot point
      Since:
      2023.1
    • getPivotZ

      public double getPivotZ()
      Returns the z component of the pivot point
      Returns:
      the z component of the pivot point
      Since:
      2023.1
      See Also:
    • setEllipsoid

      public void setEllipsoid(ILcdEllipsoid aEllipsoid)
      Sets the ILcdEllipsoid of the subject geodetic datum.
      Parameters:
      aEllipsoid - the ILcdEllipsoid of the subject geodetic datum.
      See Also:
    • getEllipsoid

      public ILcdEllipsoid getEllipsoid()
      Returns the ILcdEllipsoid of the subject geodetic datum.
      Specified by:
      getEllipsoid in interface ILcdGeodeticDatum
      Returns:
      ILcdEllipsoid of the subject geodetic datum.
      See Also:
    • setRefDatum

      public void setRefDatum(ILcdGeodeticDatum aRefDatum)
      Sets the reference geodetic datum.
      Parameters:
      aRefDatum - the reference geodetic datum.
      See Also:
    • getRefDatum

      public ILcdGeodeticDatum getRefDatum()
      Gets the reference geodetic datum.
      Returns:
      the reference geodetic datum.
      See Also:
    • getType

      public int getType()
      Gives an indication of the complexity of computations when transforming to/from the reference geodetic datum. A geodetic datum can be of the types REFERENCE, SIMPLE, or COMPLEX. It is of the type REFERENCE if it is not defined with respect to another geodetic datum; SIMPLE if there are only shifts of positions involved; COMPLEX if not SIMPLE or not REFERENCE.
      Returns:
      the type of the geodetic datum.
      • REFERENCE implies X=Y=Z=0, rotX=rotY=rotZ=0, scale=1.0 and prime meridian=0.0
      • SIMPLE implies X or Y or Z different from 0, rotX=rotY=rotZ=0, scale=1.0 and prime meridian=0.0
      • COMPLEX implies not SIMPLE and not REFERENCE, either a rotation parameter, scale or prime meridian is different from the default value.
    • getPrimeMeridian

      public double getPrimeMeridian()
      Returns the prime meridian in degrees longitude.
      Returns:
      the prime meridian in degrees longitude. Default value is 0.0 (Greenwich).
      See Also:
    • setPrimeMeridian

      public void setPrimeMeridian(double aPrimeMeridian)
      Sets the prime meridian in degrees longitude of this geodetic datum.
      Parameters:
      aPrimeMeridian - the prime meridian of the geodetic datum.
      See Also:
    • setName

      public void setName(String aName)
      Sets the name of this ILcdGeodeticDatum.
      Parameters:
      aName - The new name value.
      See Also:
    • getName

      public String getName()
      Gets the name of this ILcdGeodeticDatum.
      Specified by:
      getName in interface ILcdGeodeticDatum
      Returns:
      the name of this ILcdGeodeticDatum.
      See Also:
    • initialize

      public void initialize(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
      Deprecated.
      use the method with 8 parameters, containing the prime meridian.
      Calls the initialize method with 8 parameters.
      Parameters:
      aX - x-axis position shift w.r.t. reference datum.
      aY - y-axis position shift w.r.t. reference datum.
      aZ - z-axis position shift w.r.t. reference datum.
      aRotX - rotation around x-axis.
      aRotY - rotation around y-axis.
      aRotZ - rotation around z-axis.
      aScale - scale factor.
      aEllipsoid - ellipsoid of this geodetic datum.
      aRefDatum - reference geodetic datum.
      aName - name for this geodetic datum.
      See Also:
    • initialize

      public void initialize(double aX, double aY, double aZ, double aRotX, double aRotY, double aRotZ, double aScale, double aPrimeMeridian, ILcdEllipsoid aEllipsoid, ILcdGeodeticDatum aRefDatum, String aName)
      Definition of a local complex geodetic datum.
      Parameters:
      aX - x-axis position shift w.r.t. reference datum.
      aY - y-axis position shift w.r.t. reference datum.
      aZ - z-axis position shift w.r.t. reference datum.
      aRotX - rotation around x-axis.
      aRotY - rotation around y-axis.
      aRotZ - rotation around z-axis.
      aScale - scale factor.
      aPrimeMeridian - the prime meridian of the geodetic datum.
      aEllipsoid - ellipsoid of this geodetic datum.
      aRefDatum - reference geodetic datum.
      aName - name for this geodetic datum.
      See Also:
    • datum2refGeocSFCT

      public void datum2refGeocSFCT(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZOut)
      Conversion of geocentric datum coordinate to geocentric reference datum coordinate.
      Specified by:
      datum2refGeocSFCT in interface ILcdGeodeticDatum
      Parameters:
      aXYZPoint - geocentric datum coordinate.
      aXYZOut - geocentric reference datum coordinate as side effect.
    • ref2datumGeocSFCT

      public void ref2datumGeocSFCT(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZOut)
      Conversion of geocentric reference datum coordinate to geocentric datum coordinate.
      Specified by:
      ref2datumGeocSFCT in interface ILcdGeodeticDatum
      Parameters:
      aXYZPoint - geocentric reference datum coordinate.
      aXYZOut - geocentric datum coordinate as side effect.
    • datum2refLLHSFCT

      public void datum2refLLHSFCT(ILcdPoint aLLHPoint, ILcd3DEditablePoint aLLHOut)
      Conversion of geodetic datum coordinate to geodetic reference datum coordinate.
      Specified by:
      datum2refLLHSFCT in interface ILcdGeodeticDatum
      Parameters:
      aLLHPoint - geodetic datum coordinate.
      aLLHOut - geodetic reference datum coordinate as side effect.
    • ref2datumLLHSFCT

      public void ref2datumLLHSFCT(ILcdPoint aLLHPoint, ILcd3DEditablePoint aLLHOut)
      Conversion of geodetic reference datum coordinate to geodetic datum coordinate.
      Specified by:
      ref2datumLLHSFCT in interface ILcdGeodeticDatum
      Parameters:
      aLLHPoint - geodetic reference datum coordinate.
      aLLHOut - geodetic datum coordinate as side effect.
    • geoc2llhSFCT

      public void geoc2llhSFCT(ILcdPoint aXYZGeocPoint, ILcd3DEditablePoint aLLHPointSFCT)
      Description copied from interface: ILcdGeodeticDatum
      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.
      Specified by:
      geoc2llhSFCT in interface ILcdGeodeticDatum
      Parameters:
      aXYZGeocPoint - geocentric 3D point.
      aLLHPointSFCT - lonLatHeight coordinates to be set.
    • llh2geocSFCT

      public void llh2geocSFCT(ILcdPoint aLLHPoint, ILcd3DEditablePoint aXYZGeocPointSFCT)
      Description copied from interface: ILcdGeodeticDatum
      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.
      Specified by:
      llh2geocSFCT in interface ILcdGeodeticDatum
      Parameters:
      aLLHPoint - lonLatHeight point.
      aXYZGeocPointSFCT - Geocentric coordinates to be set.
    • toString

      public String toString()
      Returns a String representation of this ILcdGeodeticDatum.
      Overrides:
      toString in class Object
      Returns:
      String representation of this ILcdGeodeticDatum.
    • equals

      public boolean equals(Object aObject)
      Checks whether the two geodetic datums are exactly equal.
      Specified by:
      equals in interface ILcdGeodeticDatum
      Overrides:
      equals in class Object
      Parameters:
      aObject - the object for equality
      Returns:
      true when the object passed is a TLcdGeodeticDatum and is exactly equal to this geodetic datum.
    • equals2D

      public boolean equals2D(Object aObject)
      Checks whether the horizontal datum parts of the two geodetic datums are exactly equal.
      Specified by:
      equals2D in interface ILcdGeodeticDatum
      Parameters:
      aObject - the object for equality
      Returns:
      true when the object passed is a TLcdGeodeticDatum and its horizontal datum part is exactly equal to this object's horizontal datum.
    • clone

      public Object clone()
      Clones this ILcdGeodeticDatum.
      Specified by:
      clone in interface ILcdCloneable
      Specified by:
      clone in interface ILcdGeodeticDatum
      Overrides:
      clone in class Object
      Returns:
      Clone of this ILcdGeodeticDatum.
      See Also:
    • hasNonZeroHeights

      public boolean hasNonZeroHeights()
      Description copied from interface: ILcdGeodeticDatum
      Returns whether the method getHeight returns non zero height values. The method getHeight will always return 0, if this method returns false
      Specified by:
      hasNonZeroHeights in interface ILcdGeodeticDatum
      Returns:
      true if the method getHeight returns non zero height values, false otherwise.
    • getVerticalDatumName

      public Optional<String> getVerticalDatumName()
      Description copied from interface: ILcdGeodeticDatum
      Returns a vertical datum name, if this geodetic datum defines one.
      Specified by:
      getVerticalDatumName in interface ILcdGeodeticDatum
      Returns:
      a vertical datum name, or an empty Optional if no vertical datum is present.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getHeight

      public double getHeight(double aLon, double aLat)
      Returns the height of the vertical datum of this ILcdGeodeticDatum for the specified geodetic coordinates. These heights are expressed in meters with respect to the ellipsoid of this ILcdGeodeticDatum.

      Note that, if the geodetic coordinates lie outside the bounds of this instance, Double.NaN will be returned.

      Specified by:
      getHeight in interface ILcdGeodeticDatum
      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.