|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectFormattableObject
AbstractMathTransform
MolodenskyTransform
@Immutable public class MolodenskyTransform
Two- or three-dimensional datum shift using the (potentially abridged) Molodensky transformation. The Molodensky transformation (EPSG code 9604) and the abridged Molodensky transformation (EPSG code 9605) transform two or three dimensional geographic points from one geographic coordinate reference system to another (a datum shift), using three shift parameters (delta X, delta Y, delta Z) and the difference between the semi-major axis and flattenings of the two ellipsoids.
This transformation is performed directly on geographic coordinates. See any of the following providers for a list of programmatic parameters:
References:
| referencing/geotk-referencing (download) | View source code for this class |
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class AbstractMathTransform |
|---|
AbstractMathTransform.Inverse |
| Field Summary |
|---|
| Fields inherited from class FormattableObject |
|---|
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE |
| Constructor Summary | |
|---|---|
protected |
MolodenskyTransform(boolean abridged,
double sa,
double sb,
boolean source3D,
double ta,
double tb,
boolean target3D,
double dx,
double dy,
double dz)
Constructs a Molodensky transform from the specified parameters. |
protected |
MolodenskyTransform(MolodenskyTransform original,
boolean abridged,
boolean source3D,
boolean target3D)
Creates a new transform with the same ellipsoidal and Bursa-Wolf parameters than the given transform. |
| Method Summary | |
|---|---|
protected int |
computeHashCode()
Computes a hash value for this transform. |
static MathTransform |
create(boolean abridged,
double a,
double b,
boolean source3D,
double ta,
double tb,
boolean target3D,
double dx,
double dy,
double dz)
Constructs a transform from the specified Molodensky parameters. |
Matrix |
derivative(DirectPosition point)
Gets the derivative of this transform at a point. |
boolean |
equals(Object object,
ComparisonMode mode)
Compares the specified object with this math transform for equality. |
MolodenskyTransform |
forDimensions(boolean source3D,
boolean target3D)
Returns a transform having the same ellipsoidal and Bursa-Wolf parameters than this transform, but a different number of source or target dimensions. |
ParameterDescriptorGroup |
getParameterDescriptors()
Returns the parameter descriptors for this math transform. |
ParameterValueGroup |
getParameterValues()
Returns the parameters for this math transform. |
int |
getSourceDimensions()
Gets the dimension of input points. |
int |
getTargetDimensions()
Gets the dimension of output points. |
MathTransform |
inverse()
Creates the inverse transform of this object. |
boolean |
isAbridged()
Returns true if this Molodensky transform uses abridged formulas
instead than the complete ones. |
boolean |
isIdentity()
Returns true if this transform is the identity one. |
protected void |
transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
Transforms a single coordinate point. |
void |
transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
Transforms a list of coordinate point ordinal values. |
void |
transform(double[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
Transforms a list of coordinate point ordinal values. |
void |
transform(float[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
Transforms a list of coordinate point ordinal values. |
void |
transform(float[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
Transforms a list of coordinate point ordinal values. |
| Methods inherited from class AbstractMathTransform |
|---|
createTransformedShape, derivative, ensureNonNull, equals, formatWKT, getName, hashCode, rollLongitude, transform, transform |
| Methods inherited from class FormattableObject |
|---|
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT |
| Methods inherited from class Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface MathTransform |
|---|
toWKT, transform |
| Constructor Detail |
|---|
protected MolodenskyTransform(boolean abridged,
double sa,
double sb,
boolean source3D,
double ta,
double tb,
boolean target3D,
double dx,
double dy,
double dz)
create static method instead.
WARNING: Current implementation expects longitude and latitude ordinates in decimal degrees, but it may be changed to radians in a future version. The static factory method will preserve the decimal degrees contract.
abridged - true for the abridged formula, or false for the complete one.sa - The source semi-major axis length in meters.sb - The source semi-minor axis length in meters.source3D - true if the source has a height.ta - The target semi-major axis length in meters.tb - The target semi-minor axis length in meters.target3D - true if the target has a height.dx - The x translation in meters.dy - The y translation in meters.dz - The z translation in meters.create(boolean, double, double, boolean, double, double, boolean, double, double, double)
protected MolodenskyTransform(MolodenskyTransform original,
boolean abridged,
boolean source3D,
boolean target3D)
original - The transform to copy.abridged - true for the abridged formula, or false for the complete one.source3D - true if the source has a height.target3D - true if the target has a height.| Method Detail |
|---|
public static MathTransform create(boolean abridged,
double a,
double b,
boolean source3D,
double ta,
double tb,
boolean target3D,
double dx,
double dy,
double dz)
source3D and target3D arguments).
abridged - true for the abridged formula, or false for the complete one.a - The source semi-major axis length in meters.b - The source semi-minor axis length in meters.source3D - true if the source has a height.ta - The target semi-major axis length in meters.tb - The target semi-minor axis length in meters.target3D - true if the target has a height.dx - The x translation in meters.dy - The y translation in meters.dz - The z translation in meters.
public ParameterDescriptorGroup getParameterDescriptors()
getParameterDescriptors in interface ParameterizedgetParameterDescriptors in class AbstractMathTransformnull.OperationMethod.getParameters()public ParameterValueGroup getParameterValues()
getParameterValues in interface ParameterizedgetParameterValues in class AbstractMathTransformSingleOperation.getParameterValues()
public MolodenskyTransform forDimensions(boolean source3D,
boolean target3D)
forDimensions in interface EllipsoidalTransformsource3D - true if the source coordinates have a height.target3D - true if the target coordinates have a height.
this).public final int getSourceDimensions()
getSourceDimensions in interface MathTransformgetSourceDimensions in class AbstractMathTransformpublic final int getTargetDimensions()
getTargetDimensions in interface MathTransformgetTargetDimensions in class AbstractMathTransform
protected void transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
transform in class AbstractMathTransformsrcPts - The array containing the source point coordinates.srcOff - The offset to the point to be transformed in the source array.dstPts - the array into which the transformed point coordinate are returned.
May be the same than srcPts.dstOff - The offset to the location of the transformed point that is
stored in the destination array.
public void transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.
public void transform(float[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.
public void transform(double[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.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.
public void transform(float[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.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.public Matrix derivative(DirectPosition point)
derivative in interface MathTransformderivative in class AbstractMathTransformpoint - The coordinate point where to evaluate the derivative.
null).public final boolean isAbridged()
true if this Molodensky transform uses abridged formulas
instead than the complete ones. This is the value of the abridged
boolean argument given to the constructor.
true if this transform uses abridged formulas.public boolean isIdentity()
true if this transform is the identity one.
This transform is considered identity (minus rounding errors) if:
isIdentity in interface MathTransformisIdentity in class AbstractMathTransformpublic MathTransform inverse()
inverse in interface MathTransforminverse in class AbstractMathTransformprotected int computeHashCode()
AbstractMathTransform.hashCode()
when first needed.
computeHashCode in class AbstractMathTransform
public final boolean equals(Object object,
ComparisonMode mode)
equals in interface LenientComparableequals in class AbstractMathTransformobject - The object to compare with this transform.mode - The strictness level of the comparison. Default to STRICT.
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.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||