Class GeocentricTransform
Object
Formattable
AbstractMathTransform
GeocentricTransform
- All Implemented Interfaces:
Serializable
,MathTransform
Transforms three dimensional geographic points to
geocentric coordinate points. Input points must be
longitudes, latitudes and heights above the ellipsoid.
- Since:
- 2.0
- Author:
- Frank Warmerdam, Martin Desruisseaux (IRD)
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
The provider forGeocentricTransform
.static class
The provider for inverse ofGeocentricTransform
. -
Field Summary
Fields inherited from class Formattable
SINGLE_LINE
-
Constructor Summary
ConstructorsConstructorDescriptionGeocentricTransform
(double semiMajor, double semiMinor, Unit<Length> units, boolean hasHeight) Constructs a transform from the specified parameters.GeocentricTransform
(Ellipsoid ellipsoid, boolean hasHeight) Constructs a transform from the specified ellipsoid. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Compares the specified object with this math transform for equality.Returns the parameter descriptors for this math transform.Returns the parameter values for this math transform.int
Gets the dimension of input points, which is 2 or 3.final int
Gets the dimension of output points, which is 3.int
hashCode()
Returns a hash value for this transform.inverse()
Returns the inverse of this transform.void
inverseTransform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Converts geocentric coordinates (x, y, z) to geodetic coordinates (longitude, latitude, height), according to the current ellipsoid parameters.void
inverseTransform
(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) Converts geocentric coordinates (x, y, z) to geodetic coordinates (longitude, latitude, height), according to the current ellipsoid parameters.void
transform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Converts geodetic coordinates (longitude, latitude, height) to geocentric coordinates (x, y, z) according to the current ellipsoid parameters.void
transform
(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) Converts geodetic coordinates (longitude, latitude, height) to geocentric coordinates (x, y, z) according to the current ellipsoid parameters.Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transform, transform
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
Methods inherited from interface MathTransform
toWKT
-
Constructor Details
-
GeocentricTransform
Constructs a transform from the specified ellipsoid.- Parameters:
ellipsoid
- The ellipsoid.hasHeight
-true
if geographic coordinates include an ellipsoidal height (i.e. are 3-D), orfalse
if they are only 2-D.
-
GeocentricTransform
public GeocentricTransform(double semiMajor, double semiMinor, Unit<Length> units, boolean hasHeight) Constructs a transform from the specified parameters.- Parameters:
semiMajor
- The semi-major axis length.semiMinor
- The semi-minor axis length.units
- The axis units.hasHeight
-true
if geographic coordinates include an ellipsoidal height (i.e. are 3-D), orfalse
if they are only 2-D.
-
-
Method Details
-
getParameterDescriptors
Returns the parameter descriptors for this math transform.- Overrides:
getParameterDescriptors
in classAbstractMathTransform
- Returns:
- The parameter descriptors for this math transform, or
null
. - See Also:
-
getParameterValues
Returns the parameter values for this math transform.- Overrides:
getParameterValues
in classAbstractMathTransform
- Returns:
- A copy of the parameter values for this math transform.
- See Also:
-
getSourceDimensions
public int getSourceDimensions()Gets the dimension of input points, which is 2 or 3.- Specified by:
getSourceDimensions
in interfaceMathTransform
- Specified by:
getSourceDimensions
in classAbstractMathTransform
- Returns:
- The dimension of input points.
-
getTargetDimensions
public final int getTargetDimensions()Gets the dimension of output points, which is 3.- Specified by:
getTargetDimensions
in interfaceMathTransform
- Specified by:
getTargetDimensions
in classAbstractMathTransform
- Returns:
- The dimension of output points.
-
transform
public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Converts geodetic coordinates (longitude, latitude, height) to geocentric coordinates (x, y, z) according to the current ellipsoid parameters.- Specified by:
transform
in interfaceMathTransform
- Parameters:
srcPts
- the array containing the source point coordinates.srcOff
- the offset to the first point to be transformed in the source array.dstPts
- the array into which the transformed point coordinates are returned. May be the same thansrcPts
.dstOff
- the offset to the location of the first transformed point that is stored in the destination array.numPts
- the number of point objects to be transformed.
-
transform
public void transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) Converts geodetic coordinates (longitude, latitude, height) to geocentric coordinates (x, y, z) according to the current ellipsoid parameters.- Specified by:
transform
in interfaceMathTransform
- Overrides:
transform
in classAbstractMathTransform
- Parameters:
srcPts
- the array containing the source point coordinates.srcOff
- the offset to the first point to be transformed in the source array.dstPts
- the array into which the transformed point coordinates are returned. May be the same thansrcPts
.dstOff
- the offset to the location of the first transformed point that is stored in the destination array.numPts
- the number of point objects to be transformed.
-
inverseTransform
public void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Converts geocentric coordinates (x, y, z) to geodetic coordinates (longitude, latitude, height), according to the current ellipsoid parameters. The method used here is derived from "An Improved Algorithm for Geocentric to Geodetic Coordinate Conversion", by Ralph Toms, Feb 1996.- Parameters:
srcPts
- the array containing the source point coordinates.srcOff
- the offset to the first point to be transformed in the source array.dstPts
- the array into which the transformed point coordinates are returned. May be the same thansrcPts
.dstOff
- the offset to the location of the first transformed point that is stored in the destination array.numPts
- the number of point objects to be transformed.
-
inverseTransform
public void inverseTransform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) Converts geocentric coordinates (x, y, z) to geodetic coordinates (longitude, latitude, height), according to the current ellipsoid parameters. The method used here is derived from "An Improved Algorithm for Geocentric to Geodetic Coordinate Conversion", by Ralph Toms, Feb 1996.- Parameters:
srcPts
- the array containing the source point coordinates.srcOff
- the offset to the first point to be transformed in the source array.dstPts
- the array into which the transformed point coordinates are returned. May be the same thansrcPts
.dstOff
- the offset to the location of the first transformed point that is stored in the destination array.numPts
- the number of point objects to be transformed.
-
inverse
Returns the inverse of this transform.- Specified by:
inverse
in interfaceMathTransform
- Overrides:
inverse
in classAbstractMathTransform
- Returns:
- The inverse transform.
-
equals
Description copied from class:AbstractMathTransform
Compares the specified object with this math transform for equality. The default implementation checks ifobject
is an instance of the same class thanthis
and use the same parameter descriptor. Subclasses should override this method in order to compare internal fields.- Overrides:
equals
in classAbstractMathTransform
- Parameters:
o
- The object to compare with this transform.- Returns:
true
if the given object is a transform of the same class and if, given identical source position, the transformed position would be the equals.
-
hashCode
public int hashCode()Description copied from class:AbstractMathTransform
Returns a hash value for this transform.- Overrides:
hashCode
in classAbstractMathTransform
-