protected static class ObjectGPSCoordinate.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.
Modifier and Type | Field and Description |
---|---|
static ObjectGPSCoordinate.ReferenceEllipsoid |
WGS84
The World Geodetic System 1984 reference ellipsoid.
|
Constructor and Description |
---|
ObjectGPSCoordinate.ReferenceEllipsoid(double semimajorAxis,
double inverseFlattening)
Constructs an instance of a reference ellipsoid.
|
Modifier and Type | Method and Description |
---|---|
double |
distanceDegree(double phi1,
double lambda1,
double phi2,
double lambda2)
Returns the distance in meters between two points in geographical coordinates.
|
double |
distanceRadian(double phi1,
double lambda1,
double phi2,
double lambda2)
Returns the distance in meters between two points in geographical coordinates.
|
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.
|
double |
getSemimajorAxis()
Returns the semimajor or equatorial radius of this reference ellipsoid.
|
double |
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.
|
double |
meridionalRadiusOfCurvature(double phi)
Returns the radius of curvature in the meridian
for this reference ellipsoid at the specified latitude.
|
double |
parallelArc(double phi,
double lambda1,
double lambda2)
Returns the parallel arc, the true parallel distance on the
ellipsoid from the meridian lambda1 to the meridian lambda2 at the specified latitude phi, in meters.
|
double |
verticalArc(double phi,
double lambda1,
double lambda2)
Returns the prime vertical arc, the true prime vertical distance on the
ellipsoid from the meridian lambda1 to the meridian lambda2 at the specified latitude phi, in meters.
|
double |
verticalRadiusOfCurvature(double phi)
Returns the radius of curvature in the prime vertical
for this reference ellipsoid at the specified latitude.
|
public static final ObjectGPSCoordinate.ReferenceEllipsoid WGS84
public ObjectGPSCoordinate.ReferenceEllipsoid(double semimajorAxis, double inverseFlattening)
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).public double getSemimajorAxis()
public double getsSemiminorAxis()
public double getFlattening()
public double getEccentricity()
public double getEccentricitySquared()
public double getSecondEccentricitySquared()
public double verticalRadiusOfCurvature(double phi)
phi
- The local latitude (radians).public double meridionalRadiusOfCurvature(double phi)
phi
- The local latitude (in radians).public double meridionalArc(double phi)
phi
- The local latitude (in radians).public double parallelArc(double phi, double lambda1, double lambda2)
phi
- The local latitude (in radians).lambda1
- The source longitude (in radians).lambda2
- The destination longitude (in radians).public double verticalArc(double phi, double lambda1, double lambda2)
phi
- The local latitude (in radians).lambda1
- The source longitude (in radians).lambda2
- The destination longitude (in radians).public double distanceRadian(double phi1, double lambda1, double phi2, double lambda2)
phi1
- The source latitude (in radians).lambda1
- The source longitude (in radians).phi2
- The destination latitude (in radians).lambda2
- The destination longitude (in radians).public double distanceDegree(double phi1, double lambda1, double phi2, double lambda2)
phi1
- The source latitude (in degrees).lambda1
- The source longitude (in degrees).phi2
- The destination latitude (in degrees).lambda2
- The destination longitude (in degrees).