|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.deegree_impl.model.ct.AbstractMathTransform
org.deegree_impl.model.ct.MapProjection
Provides transformation services between ellipsoidal and cartographic projections. Ellipsoidal height values remain unchanged.
Nested Class Summary | |
private static class |
MapProjection.CheckPoint
Check point for private use by #checkTransform and #checkInverseTransform .
|
private class |
MapProjection.Inverse
Inverse of a map projection. |
(package private) static class |
MapProjection.Provider
Informations about a MapProjection . |
Field Summary | |
protected double |
a
Longueur de l'axe majeur de la terre, en mètres. |
protected double |
b
Longueur de l'axe mineur de la terre, en mètres. |
protected double |
centralLatitude
Central latitude in radians. |
protected double |
centralMeridian
Central longitude in radians. |
private java.lang.String |
classification
Classification string for this projection (e.g. |
protected double |
e
Excentricité de l'ellipse. |
(package private) static double |
EPS
Marge de tolérance pour les comparaisons de nombre réels. |
protected double |
es
Carré de l'excentricité de l'ellipse: e² = (a²-b²)/a². |
protected double |
false_easting
|
protected double |
false_northing
|
private MathTransform |
inverse
The inverse of this map projection. |
protected boolean |
isSpherical
Indique si le modèle terrestre est sphérique. |
private static double |
MAX_ERROR
Erreur maximale (en mètres) tolérées lorsque l'on fait une transformation directe suivit d'une transformation inverse (ou vis-versa). |
(package private) static double |
TOL
Marge de tolérance pour les calculs itératifs. |
Constructor Summary | |
protected |
MapProjection(Projection parameters)
Construct a new map projection from the suplied parameters. |
Method Summary | |
(package private) double |
cphi2(double ts)
Iteratively solve equation (7-9) from Snyder. |
java.awt.Shape |
createTransformedShape(java.awt.Shape shape)
Transforme la forme géométrique shape spécifiée.
|
boolean |
equals(java.lang.Object object)
Compares the specified object with this map projection for equality. |
int |
getDimSource()
Gets the dimension of input points. |
int |
getDimTarget()
Gets the dimension of output points. |
abstract java.lang.String |
getName(java.util.Locale locale)
Returns a human readable name localized for the specified locale. |
int |
hashCode()
Returns a hash value for this map projection. |
MathTransform |
inverse()
Returns the inverse of this map projection. |
void |
inverseTransform(double[] src,
int srcOffset,
double[] dest,
int dstOffset,
int numPts)
Inverse transforms a list of coordinate point ordinal values. |
protected abstract java.awt.geom.Point2D |
inverseTransform(double x,
double y,
java.awt.geom.Point2D ptDst)
Transforms the specified coordinate and stores the result in ptDst .
|
void |
inverseTransform(float[] src,
int srcOffset,
float[] dest,
int dstOffset,
int numPts)
Inverse transforms a list of coordinate point ordinal values. |
java.awt.geom.Point2D |
inverseTransform(java.awt.geom.Point2D ptSrc,
java.awt.geom.Point2D ptDst)
Inverse transforms the specified ptSrc
and stores the result in ptDst . |
boolean |
isIdentity()
Returns false since map
projections are not identity transforms. |
(package private) static double |
latitudeToRadians(double y,
boolean edge)
Convertit en radians une latitude exprimée en degrés. |
(package private) static double |
longitudeToRadians(double x,
boolean edge)
Convertit en radians une longitude exprimée en degrés. |
(package private) double |
msfn(double s,
double c)
Compute function f(s,c,es) = c/sqrt(1 - s²*es)
needed for the true scale latitude (Snyder, p. 47), where
s and c are the sine and cosine of
the true scale latitude, and es the eccentricity
squared. |
java.lang.String |
toString()
Retourne une chaîne de caractères représentant cette projection cartographique. |
(package private) void |
toString(java.lang.StringBuffer buffer)
Implémentation de la partie entre crochets de la chaîne retournée par toString() . |
void |
transform(double[] src,
int srcOffset,
double[] dest,
int dstOffset,
int numPts)
Transforms a list of coordinate point ordinal values. |
protected abstract java.awt.geom.Point2D |
transform(double x,
double y,
java.awt.geom.Point2D ptDst)
Transforms the specified coordinate and stores the result in ptDst .
|
void |
transform(float[] src,
int srcOffset,
float[] dest,
int dstOffset,
int numPts)
Transforms a list of coordinate point ordinal values. |
java.awt.geom.Point2D |
transform(java.awt.geom.Point2D ptSrc,
java.awt.geom.Point2D ptDst)
Transforms the specified ptSrc
and stores the result in ptDst . |
(package private) double |
tsfn(double phi,
double sinphi)
Compute function (15-9) from Snyder equivalent to negative of function (7-7). |
Methods inherited from class org.deegree_impl.model.ct.AbstractMathTransform |
addParameter, addParameter, createTransformedShape, derivative, derivative, paramMT, toOpenGIS, transform |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.deegree_impl.model.ct.MathTransform2D |
derivative |
Methods inherited from interface org.deegree_impl.model.ct.MathTransform |
derivative, transform |
Field Detail |
private static final double MAX_ERROR
// assertionError
sera lancée.
static final double EPS
static final double TOL
private final java.lang.String classification
protected final boolean isSpherical
true
indique que le modèle est sphérique, c'est-à-dire que les champs a
et b
ont la même valeur.
protected final double e
isSpherical
est true
.
protected final double es
protected final double a
protected final double b
protected double centralMeridian
TransverseMercatorProjection
need to modify it at
construction time.
protected double centralLatitude
protected double false_easting
protected double false_northing
private transient MathTransform inverse
Constructor Detail |
protected MapProjection(Projection parameters) throws MissingParameterException
parameters
- The parameter values in standard units.
The following parameter are recognized:
MissingParameterException
- if a mandatory parameter is missing.Method Detail |
public abstract java.lang.String getName(java.util.Locale locale)
getName
in class AbstractMathTransform
locale
- The desired locale, or null
for a default locale.
null
if no name is available in any locale.public final int getDimSource()
getDimSource
in interface MathTransform
CT_MathTransform.getDimSource()
public final int getDimTarget()
getDimTarget
in interface MathTransform
CT_MathTransform.getDimTarget()
static double longitudeToRadians(double x, boolean edge) throws java.lang.IllegalArgumentException
#setCentralLongitude
.
x
- Longitude à vérifier, en degrés.edge
- true
pour accepter les longitudes de ±180°.
java.lang.IllegalArgumentException
- si la longitude est invalide.static double latitudeToRadians(double y, boolean edge) throws java.lang.IllegalArgumentException
#setCentralLongitude
.
y
- Latitude à vérifier, en degrés.edge
- true
pour accepter les latitudes de ±90°.
java.lang.IllegalArgumentException
- si la latitude est invalide.protected abstract java.awt.geom.Point2D transform(double x, double y, java.awt.geom.Point2D ptDst) throws TransformException
ptDst
.
This method is guaranteed to be invoked with values of x in the range
[-PI..PI]
and values of y in the range [-PI/2..PI/2]
.
x
- The longitude of the coordinate, in radians.y
- The latitude of the coordinate, in radians.ptDst
- the specified coordinate point that stores the
result of transforming ptSrc
, or
null
. Ordinates will be in metres.
ptSrc
and stroring the result in ptDst
.
TransformException
- if the point can't be transformed.public final java.awt.geom.Point2D transform(java.awt.geom.Point2D ptSrc, java.awt.geom.Point2D ptDst) throws TransformException
ptSrc
and stores the result in ptDst
.
transform
in interface MathTransform2D
transform
in class AbstractMathTransform
ptSrc
- the specified coordinate point to be transformed.
Ordinates must be in degrees.ptDst
- the specified coordinate point that stores the
result of transforming ptSrc
, or
null
. Ordinates will be in metres.
ptSrc
and stroring the result in ptDst
.
TransformException
- if the point can't be transformed.MathTransform2D.transform(Point2D,Point2D)
public final void transform(double[] src, int srcOffset, double[] dest, int dstOffset, int numPts) throws TransformException
transform
in interface MathTransform
src
- the array containing the source point coordinates.srcOffset
- the offset to the first point to be transformed
in the source array.dest
- the array into which the transformed point
coordinates are returned. May be the same
than srcPts
.dstOffset
- 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.
TransformException
- if a point can't be transformed. This method try
to transform every points even if some of them can't be transformed.
Non-transformable points will have value Double.NaN
. If more
than one point can't be transformed, then this exception may be about
an arbitrary point.public final void transform(float[] src, int srcOffset, float[] dest, int dstOffset, int numPts) throws TransformException
transform
in interface MathTransform
transform
in class AbstractMathTransform
TransformException
- if a point can't be transformed. This method try
to transform every points even if some of them can't be transformed.
Non-transformable points will have value Float.NaN
. If more
than one point can't be transformed, then this exception may be about
an arbitrary point.public final java.awt.Shape createTransformedShape(java.awt.Shape shape) throws TransformException
shape
spécifiée.
Cette projection peut remplacer certaines lignes droites
par des courbes. Tous les points de la forme géométrique
seront copiés. Cette méthode n'est donc pas à conseiller
si shape
est volumineux, par exemple s'il
représente une bathymétrie entière.
createTransformedShape
in interface MathTransform2D
createTransformedShape
in class AbstractMathTransform
shape
- Forme géométrique à transformer. Les coordonnées des points
de cette forme doivent être exprimées en degrés de latitudes
et de longitudes.
TransformException
- si une transformation a échouée.MathTransform2D.createTransformedShape(Shape)
protected abstract java.awt.geom.Point2D inverseTransform(double x, double y, java.awt.geom.Point2D ptDst) throws TransformException
ptDst
.
This method shall returns x values in the range [-PI..PI]
and y values in the range [-PI/2..PI/2]
. It will be checked
by the caller, so this method doesn't need to performs this check.
x
- The longitude of the coordinate, in metres.y
- The latitude of the coordinate, in metres.ptDst
- the specified coordinate point that stores the
result of transforming ptSrc
, or
null
. Ordinates will be in radians.
ptSrc
and stroring the result in ptDst
.
TransformException
- if the point can't be transformed.public final java.awt.geom.Point2D inverseTransform(java.awt.geom.Point2D ptSrc, java.awt.geom.Point2D ptDst) throws TransformException
ptSrc
and stores the result in ptDst
.
ptSrc
- the specified coordinate point to be transformed.
Ordinates must be in metres.ptDst
- the specified coordinate point that stores the
result of transforming ptSrc
, or
null
. Ordinates will be in degrees.
ptSrc
and stroring the result in ptDst
.
TransformException
- if the point can't be transformed.public final void inverseTransform(double[] src, int srcOffset, double[] dest, int dstOffset, int numPts) throws TransformException
TransformException
- if a point can't be transformed. This method try
to transform every points even if some of them can't be transformed.
Non-transformable points will have value Double.NaN
. If more
than one point can't be transformed, then this exception may be about
an arbitrary point.public final void inverseTransform(float[] src, int srcOffset, float[] dest, int dstOffset, int numPts) throws TransformException
TransformException
- if a point can't be transformed. This method try
to transform every points even if some of them can't be transformed.
Non-transformable points will have value Float.NaN
. If more
than one point can't be transformed, then this exception may be about
an arbitrary point.final double cphi2(double ts) throws TransformException
TransformException
final double msfn(double s, double c)
f(s,c,es) = c/sqrt(1 - s²*es)
needed for the true scale latitude (Snyder, p. 47), where
s and c are the sine and cosine of
the true scale latitude, and es
the eccentricity
squared.
final double tsfn(double phi, double sinphi)
public final MathTransform inverse()
inverse
in interface MathTransform
inverse
in class AbstractMathTransform
public final boolean isIdentity()
false
since map
projections are not identity transforms.
isIdentity
in interface MathTransform
true
if this MathTransform
is
an identity transform; false
otherwise.public int hashCode()
hashCode
in class AbstractMathTransform
public boolean equals(java.lang.Object object)
equals
in class AbstractMathTransform
public final java.lang.String toString()
toString
in class AbstractMathTransform
void toString(java.lang.StringBuffer buffer)
toString()
.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |