deegree 2.1 (2007/11/08 09:57 build-328-official)

org.deegree.model.csct.ct
Class GeocentricTransform

java.lang.Object
  extended by org.deegree.model.csct.ct.AbstractMathTransform
      extended by org.deegree.model.csct.ct.GeocentricTransform
All Implemented Interfaces:
Serializable, MathTransform

 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.

Version:
1.00
Author:
Frank Warmerdam, Martin Desruisseaux

Nested Class Summary
(package private) static class GeocentricTransform.Provider
          The provider for GeocentricTransform.
 
Constructor Summary
protected GeocentricTransform(double semiMajor, double semiMinor, Unit units, boolean hasHeight)
          Construct a transform.
protected GeocentricTransform(Ellipsoid ellipsoid, boolean hasHeight)
          Construct a transform.
 
Method Summary
 boolean equals(Object object)
          Compares the specified object with this math transform for equality.
 int getDimSource()
          Gets the dimension of input points, which is 2 or 3.
 int getDimTarget()
          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.
protected  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.
protected  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.
 boolean isIdentity()
          Tests whether this transform does not move any points.
 String toString()
          Returns the WKT for this math transform.
(package private)  String toString(String classification)
          Returns the WKT for this math transform with the specified classification name.
 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 org.deegree.model.csct.ct.AbstractMathTransform
addParameter, addParameter, createTransformedShape, createTransformedShape, derivative, derivative, getName, paramMT, transform, transform
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GeocentricTransform

protected GeocentricTransform(Ellipsoid ellipsoid,
                              boolean hasHeight)
Construct a transform.

Parameters:
ellipsoid - The ellipsoid.
hasHeight - true if geographic coordinates include an ellipsoidal height (i.e. are 3-D), or false if they are strictly 2-D.

GeocentricTransform

protected GeocentricTransform(double semiMajor,
                              double semiMinor,
                              Unit units,
                              boolean hasHeight)
Construct a transform.

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), or false if they are strictly 2-D.
Method Detail

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 interface MathTransform
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 than srcPts.
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 interface MathTransform
Overrides:
transform in class AbstractMathTransform
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 than srcPts.
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

protected final 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.


inverseTransform

protected final 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.


getDimSource

public int getDimSource()
Gets the dimension of input points, which is 2 or 3.

Specified by:
getDimSource in interface MathTransform
Returns:
the dimension of input points.
See Also:
"org.opengis.ct.CT_MathTransform#getDimSource()"

getDimTarget

public final int getDimTarget()
Gets the dimension of output points, which is 3.

Specified by:
getDimTarget in interface MathTransform
Returns:
the dimension of output points.
See Also:
"org.opengis.ct.CT_MathTransform#getDimTarget()"

isIdentity

public final boolean isIdentity()
Tests whether this transform does not move any points. This method returns always false.

Specified by:
isIdentity in interface MathTransform
Returns:
true if this MathTransform is an identity transform; false otherwise.

inverse

public MathTransform inverse()
Returns the inverse of this transform.

Specified by:
inverse in interface MathTransform
Overrides:
inverse in class AbstractMathTransform
Returns:
The inverse transform.

hashCode

public final int hashCode()
Returns a hash value for this transform.

Overrides:
hashCode in class AbstractMathTransform

equals

public final boolean equals(Object object)
Compares the specified object with this math transform for equality.

Overrides:
equals in class AbstractMathTransform

toString

public final String toString()
Returns the WKT for this math transform.

Overrides:
toString in class AbstractMathTransform

toString

final String toString(String classification)
Returns the WKT for this math transform with the specified classification name. The classification name should be "Ellipsoid_To_Geocentric" or "Geocentric_To_Ellipsoid".


deegree 2.1 (2007/11/08 09:57 build-328-official)

an open source project founded by lat/lon, Bonn, Germany.
For more information visit: http://deegree.sourceforge.net