Class ReferenceEllipsoid


  • public class ReferenceEllipsoid
    extends java.lang.Object

    The ReferenceEllipsoid class defines a geodetic reference ellipsoid used as a standard for geodetic measurements. The World Geodetic System 1984 (WGS84) ellipsoid is the current standard for most geographic and geodetic coordinate systems, including GPS. The WGS84 ellipsoid is provided as a static instance of this class.

    The ellipsoid (actually an oblate spheroid) is uniquely specified by two parameters, the semimajor (or equatorial) radius and the ellipticity or flattening. In practice, the reciprocal of the flattening is specified.

    The ellipsoid is an approximation of the shape of the earth. Although not exact, the ellipsoid is much more accurate than a spherical approximation and is still mathematically simple. The geoid is a still closer approximation of the shape of the earth (intended to represent the mean sea level), and is generally specified by it's deviation from the ellipsoid.

    Different reference ellipsoids give more or less accurate results at different locations, so it was previously common for different nations to use ellipsoids that were more accurate for their areas. More recent efforts have provided ellipsoids with better overall global accuracy, such as the WGS84 ellipsiod, and these have now largely supplanted the others.

    Version:
    3.0, February 18, 2006
    Author:
    Paul D. Anderson
    • Constructor Summary

      Constructors 
      Constructor Description
      ReferenceEllipsoid​(double semimajorAxis, double inverseFlattening)
      Constructs an instance of a reference ellipsoid.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double getEccentricity()
      Returns the (first) eccentricity of this reference ellipsoid.
      double getEccentricitySquared()
      Returns the square of the (first) eccentricity.
      double getFlattening()
      Returns the flattening or ellipticity of this reference ellipsoid.
      double getSecondEccentricitySquared()
      Returns the square of the second eccentricity of this reference ellipsoid.
      javax.measure.Measurable<javax.measure.quantity.Length> getSemimajorAxis()
      Returns the semimajor or equatorial radius of this reference ellipsoid.
      javax.measure.Measurable<javax.measure.quantity.Length> getsSemiminorAxis()
      Returns the semiminor or polar radius of this reference ellipsoid.
      double meridionalArc​(double phi)
      Returns the meridional arc, the true meridional distance on the ellipsoid from the equator to the specified latitude, in meters.
      javax.measure.Measurable<javax.measure.quantity.Length> meridionalArc​(javax.measure.Measurable<javax.measure.quantity.Angle> latitude)
      Returns the meridional arc, the true meridional distance on the ellipsoid from the equator to the specified latitude.
      double meridionalRadiusOfCurvature​(double phi)
      Returns the radius of curvature in the meridian for this reference ellipsoid at the specified latitude.
      javax.measure.Measurable<javax.measure.quantity.Length> meridionalRadiusOfCurvature​(javax.measure.Measurable<javax.measure.quantity.Angle> latitude)
      Returns the radius of curvature in the meridian for this reference ellipsoid at the specified latitude.
      double verticalRadiusOfCurvature​(double phi)
      Returns the radius of curvature in the prime vertical for this reference ellipsoid at the specified latitude.
      javax.measure.Measurable<javax.measure.quantity.Length> verticalRadiusOfCurvature​(javax.measure.Measurable<javax.measure.quantity.Angle> latitude)
      Returns the radius of curvature in the prime vertical for this reference ellipsoid at the specified latitude.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ReferenceEllipsoid

        public ReferenceEllipsoid​(double semimajorAxis,
                                  double inverseFlattening)
        Constructs an instance of a reference ellipsoid.
        Parameters:
        semimajorAxis - The semimajor or equatorial radius of this reference ellipsoid, in meters.
        inverseFlattening - The reciprocal of the ellipticity or flattening of this reference ellipsoid (dimensionless).
    • Method Detail

      • getSemimajorAxis

        public javax.measure.Measurable<javax.measure.quantity.Length> getSemimajorAxis()
        Returns the semimajor or equatorial radius of this reference ellipsoid.
        Returns:
        The semimajor radius.
      • getsSemiminorAxis

        public javax.measure.Measurable<javax.measure.quantity.Length> getsSemiminorAxis()
        Returns the semiminor or polar radius of this reference ellipsoid.
        Returns:
        The semiminor radius.
      • getFlattening

        public double getFlattening()
        Returns the flattening or ellipticity of this reference ellipsoid.
        Returns:
        The flattening.
      • getEccentricity

        public double getEccentricity()
        Returns the (first) eccentricity of this reference ellipsoid.
        Returns:
        The eccentricity.
      • getEccentricitySquared

        public double getEccentricitySquared()
        Returns the square of the (first) eccentricity. This number is frequently used in ellipsoidal calculations.
        Returns:
        The square of the eccentricity.
      • getSecondEccentricitySquared

        public double getSecondEccentricitySquared()
        Returns the square of the second eccentricity of this reference ellipsoid. This number is frequently used in ellipsoidal calculations.
        Returns:
        The square of the second eccentricity.
      • verticalRadiusOfCurvature

        public double verticalRadiusOfCurvature​(double phi)
        Returns the radius of curvature in the prime vertical for this reference ellipsoid at the specified latitude.
        Parameters:
        phi - The local latitude (radians).
        Returns:
        The radius of curvature in the prime vertical (meters).
      • verticalRadiusOfCurvature

        public javax.measure.Measurable<javax.measure.quantity.Length> verticalRadiusOfCurvature​(javax.measure.Measurable<javax.measure.quantity.Angle> latitude)
        Returns the radius of curvature in the prime vertical for this reference ellipsoid at the specified latitude.
        Parameters:
        latitude - The local latitude.
        Returns:
        The radius of curvature in the prime vertical.
      • meridionalRadiusOfCurvature

        public double meridionalRadiusOfCurvature​(double phi)
        Returns the radius of curvature in the meridian for this reference ellipsoid at the specified latitude.
        Parameters:
        phi - The local latitude (in radians).
        Returns:
        The radius of curvature in the meridian (in meters).
      • meridionalRadiusOfCurvature

        public javax.measure.Measurable<javax.measure.quantity.Length> meridionalRadiusOfCurvature​(javax.measure.Measurable<javax.measure.quantity.Angle> latitude)
        Returns the radius of curvature in the meridian for this reference ellipsoid at the specified latitude.
        Parameters:
        latitude - The local latitude (in radians).
        Returns:
        The radius of curvature in the meridian (in meters).
      • meridionalArc

        public double meridionalArc​(double phi)
        Returns the meridional arc, the true meridional distance on the ellipsoid from the equator to the specified latitude, in meters.
        Parameters:
        phi - The local latitude (in radians).
        Returns:
        The meridional arc (in meters).
      • meridionalArc

        public javax.measure.Measurable<javax.measure.quantity.Length> meridionalArc​(javax.measure.Measurable<javax.measure.quantity.Angle> latitude)
        Returns the meridional arc, the true meridional distance on the ellipsoid from the equator to the specified latitude.
        Parameters:
        latitude - The local latitude.
        Returns:
        The meridional arc.