|
|||||||||||
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
org.deegree_impl.model.ct.CylindricalProjection
org.deegree_impl.model.ct.TransverseMercatorProjection
Projections de Mercator tranverses Universelle et Modifiée. Il s'agit de la projection Mercator cylindrique, mais dans lequel le cylindre a subit une rotation de 90°. Au lieu d'être tangeant à l'équateur (ou à une autre latitude standard), le cylindre de la projection tranverse est tangeant à un méridien central. Les déformation deviennent de plus en plus importantes à mesure que l'on s'éloigne du méridien central. Cette projection est appropriée pour les régions qui s'étendent d'avantage dans le sens nord-sud que dans le sens est-ouest. Référence: John P. Snyder (Map Projections - A Working Manual, U.S. Geological Survey Professional Paper 1395, 1987)
Nested Class Summary | |
(package private) static class |
TransverseMercatorProjection.Provider
Informations about a TransverseMercatorProjection . |
Field Summary | |
protected double |
a
Longueur de l'axe majeur de la terre, en mètres. |
private double |
ak0
Global scale factor. |
protected double |
b
Longueur de l'axe mineur de la terre, en mètres. |
private static double |
C00
|
private static double |
C02
|
private static double |
C04
|
private static double |
C06
|
private static double |
C08
|
private static double |
C22
|
private static double |
C44
|
private static double |
C46
|
private static double |
C48
|
private static double |
C66
|
private static double |
C68
|
private static double |
C88
|
protected double |
centralLatitude
Central latitude in radians. |
protected double |
centralMeridian
Central longitude in radians. |
protected double |
e
Excentricité de l'ellipse. |
private double |
en0
Constant needed for the mlfn |
private double |
en1
Constant needed for the mlfn |
private double |
en2
Constant needed for the mlfn |
private double |
en3
Constant needed for the mlfn |
private double |
en4
Constant needed for the mlfn |
(package private) static double |
EPS
Marge de tolérance pour les comparaisons de nombre réels. |
private static double |
EPS10
Relative precisions. |
private static double |
EPS11
Relative precisions. |
protected double |
es
Carré de l'excentricité de l'ellipse: e² = (a²-b²)/a². |
private double |
esp
Variante de l'eccentricité, calculée par e'² = (a²-b²)/b² = es/(1-es) . |
protected double |
false_easting
|
protected double |
false_northing
|
private static double |
FC1
|
private static double |
FC2
|
private static double |
FC3
|
private static double |
FC4
|
private static double |
FC5
|
private static double |
FC6
|
private static double |
FC7
|
private static double |
FC8
|
private int |
hemisphere
indicates if the projection should be performed for the north hemisphere (1) or the south hemisphere (-1) |
protected boolean |
isSpherical
Indique si le modèle terrestre est sphérique. |
private double |
scale_factor
scale factor for semi mayor axis |
(package private) static double |
TOL
Marge de tolérance pour les calculs itératifs. |
Constructor Summary | |
protected |
TransverseMercatorProjection(Projection parameters)
Construct a new map projection from the suplied parameters. |
protected |
TransverseMercatorProjection(Projection parameters,
boolean modified)
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. |
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 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 java.awt.geom.Point2D |
inverseTransform(double x,
double y,
java.awt.geom.Point2D ptDst)
Transforms the specified (x,y) 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. |
private double |
mlfn(double phi,
double sphi,
double cphi)
Calcule la distance méridionale sur un ellipsoïde à la latitude phi . |
(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 MapProjection.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 MapProjection.toString() . |
void |
transform(double[] src,
int srcOffset,
double[] dest,
int dstOffset,
int numPts)
Transforms a list of coordinate point ordinal values. |
protected java.awt.geom.Point2D |
transform(double x,
double y,
java.awt.geom.Point2D ptDst)
Transforms the specified (x,y) 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 C00
private static final double C02
private static final double C04
private static final double C06
private static final double C08
private static final double C22
private static final double C44
private static final double C46
private static final double C48
private static final double C66
private static final double C68
private static final double C88
private static final double FC1
private static final double FC2
private static final double FC3
private static final double FC4
private static final double FC5
private static final double FC6
private static final double FC7
private static final double FC8
private static final double EPS10
private static final double EPS11
private double scale_factor
private final double ak0
ak0
is equals to MapProjection.a
*k0
.
private final double en0
mlfn method.
Setup at construction time.
private final double en1
mlfn method.
Setup at construction time.
private final double en2
mlfn method.
Setup at construction time.
private final double en3
mlfn method.
Setup at construction time.
private final double en4
mlfn method.
Setup at construction time.
private final double esp
e'² = (a²-b²)/b² = es/(1-es)
.
private int hemisphere
static final double EPS
static final double TOL
protected final boolean isSpherical
true
indique que le modèle est sphérique, c'est-à-dire que les champs MapProjection.a
et MapProjection.b
ont la même valeur.
protected final double e
MapProjection.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
Constructor Detail |
protected TransverseMercatorProjection(Projection parameters) throws MissingParameterException
parameters
- The parameter values in standard units.
MissingParameterException
- if a mandatory parameter is missing.protected TransverseMercatorProjection(Projection parameters, boolean modified) throws MissingParameterException
parameters
- The parameter values in standard units.modified
- true
for MTM, false
for UTM.
MissingParameterException
- if a mandatory parameter is missing.Method Detail |
public java.lang.String getName(java.util.Locale locale)
getName
in class MapProjection
private final double mlfn(double phi, double sphi, double cphi)
phi
.
protected java.awt.geom.Point2D transform(double x, double y, java.awt.geom.Point2D ptDst) throws TransformException
ptDst
.
transform
in class MapProjection
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.protected java.awt.geom.Point2D inverseTransform(double x, double y, java.awt.geom.Point2D ptDst) throws TransformException
ptDst
.
inverseTransform
in class MapProjection
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 int hashCode()
hashCode
in class MapProjection
public boolean equals(java.lang.Object object)
equals
in class MapProjection
void toString(java.lang.StringBuffer buffer)
MapProjection.toString()
.
toString
in class MapProjection
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.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)
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 MapProjection.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 final java.lang.String toString()
toString
in class AbstractMathTransform
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |