Class GeocentricTransform
- Object
-
- Formattable
-
- AbstractMathTransform
-
- GeocentricTransform
-
- All Implemented Interfaces:
Serializable
,MathTransform
public class GeocentricTransform extends AbstractMathTransform implements Serializable
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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GeocentricTransform.Provider
The provider forGeocentricTransform
.static class
GeocentricTransform.ProviderInverse
The provider for inverse ofGeocentricTransform
.
-
Field Summary
-
Fields inherited from class Formattable
SINGLE_LINE
-
-
Constructor Summary
Constructors Constructor Description GeocentricTransform(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
Compares the specified object with this math transform for equality.ParameterDescriptorGroup
getParameterDescriptors()
Returns the parameter descriptors for this math transform.ParameterValueGroup
getParameterValues()
Returns the parameter values for this math transform.int
getSourceDimensions()
Gets the dimension of input points, which is 2 or 3.int
getTargetDimensions()
Gets the dimension of output points, which is 3.int
hashCode()
Returns a hash value for this transform.MathTransform
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 Detail
-
GeocentricTransform
public GeocentricTransform(Ellipsoid ellipsoid, boolean hasHeight)
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 Detail
-
getParameterDescriptors
public ParameterDescriptorGroup 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:
OperationMethod.getParameters()
-
getParameterValues
public ParameterValueGroup 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:
Operation.getParameterValues()
-
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
public MathTransform inverse()
Returns the inverse of this transform.- Specified by:
inverse
in interfaceMathTransform
- Overrides:
inverse
in classAbstractMathTransform
- Returns:
- The inverse transform.
-
equals
public boolean equals(Object o)
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
-
-