|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
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.
en1
private final double en1
- Constant needed for the
mlfn method.
Setup at construction time.
en2
private final double en2
- Constant needed for the
mlfn method.
Setup at construction time.
en3
private final double en3
- Constant needed for the
mlfn method.
Setup at construction time.
en4
private final double en4
- Constant needed for the
mlfn method.
Setup at construction time.
esp
private final double esp
- Variante de l'eccentricité, calculée par
e'² = (a²-b²)/b² = es/(1-es)
.
hemisphere
private int hemisphere
- indicates if the projection should be performed for the north hemisphere
(1) or the south hemisphere (-1)
EPS
static final double EPS
- Marge de tolérance pour les comparaisons de nombre réels.
- See Also:
- Constant Field Values
TOL
static final double TOL
- Marge de tolérance pour les calculs itératifs.
- See Also:
- Constant Field Values
isSpherical
protected final boolean isSpherical
- Indique si le modèle terrestre est sphérique. La valeur
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.
e
protected final double e
- Excentricité de l'ellipse. L'excentricité est 0
si l'ellipsoïde est sphérique, c'est-à-dire si
MapProjection.isSpherical
est true
.
es
protected final double es
- Carré de l'excentricité de l'ellipse: e² = (a²-b²)/a².
a
protected final double a
- Longueur de l'axe majeur de la terre, en mètres.
Sa valeur par défaut dépend de l'éllipsoïde par
défaut (par exemple "WGS 1984").
b
protected final double b
- Longueur de l'axe mineur de la terre, en mètres.
Sa valeur par défaut dépend de l'éllipsoïde par
défaut (par exemple "WGS 1984").
centralMeridian
protected double centralMeridian
- Central longitude in radians. Default value is 0, the Greenwich
meridian. Consider this field as final. It is not final
only because
TransverseMercatorProjection
need to modify it at
construction time.
centralLatitude
protected double centralLatitude
- Central latitude in radians. Default value is 0, the equator.
Consider this field as final. It is not final only
because some class need to modify it at construction time.
false_easting
protected double false_easting
false_northing
protected double false_northing
Constructor Detail
TransverseMercatorProjection
protected TransverseMercatorProjection(Projection parameters)
throws MissingParameterException
- Construct a new map projection from the suplied parameters.
Projection will default to Universal Transverse Mercator (UTM).
- Parameters:
parameters
- The parameter values in standard units.
- Throws:
MissingParameterException
- if a mandatory parameter is missing.
TransverseMercatorProjection
protected TransverseMercatorProjection(Projection parameters,
boolean modified)
throws MissingParameterException
- Construct a new map projection from the suplied parameters.
- Parameters:
parameters
- The parameter values in standard units.modified
- true
for MTM, false
for UTM.
- Throws:
MissingParameterException
- if a mandatory parameter is missing.
Method Detail
getName
public java.lang.String getName(java.util.Locale locale)
- Returns a human readable name localized for the specified locale.
- Specified by:
getName
in class MapProjection
mlfn
private final double mlfn(double phi,
double sphi,
double cphi)
- Calcule la distance méridionale sur un
ellipsoïde à la latitude
phi
.
transform
protected java.awt.geom.Point2D transform(double x,
double y,
java.awt.geom.Point2D ptDst)
throws TransformException
- Transforms the specified (x,y) coordinate
and stores the result in
ptDst
.
- Specified by:
transform
in class MapProjection
- Parameters:
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.
- Returns:
- the coordinate point after transforming
ptSrc
and stroring the result in ptDst
.
- Throws:
TransformException
- if the point can't be transformed.
inverseTransform
protected java.awt.geom.Point2D inverseTransform(double x,
double y,
java.awt.geom.Point2D ptDst)
throws TransformException
- Transforms the specified (x,y) coordinate
and stores the result in
ptDst
.
- Specified by:
inverseTransform
in class MapProjection
- Parameters:
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.
- Returns:
- the coordinate point after transforming
ptSrc
and stroring the result in ptDst
.
- Throws:
TransformException
- if the point can't be transformed.
hashCode
public int hashCode()
- Returns a hash value for this projection.
- Overrides:
hashCode
in class MapProjection
equals
public boolean equals(java.lang.Object object)
- Compares the specified object with
this map projection for equality.
- Overrides:
equals
in class MapProjection
toString
void toString(java.lang.StringBuffer buffer)
- Implémentation de la partie entre crochets
de la chaîne retournée par
MapProjection.toString()
.
- Overrides:
toString
in class MapProjection
getDimSource
public final int getDimSource()
- Gets the dimension of input points.
- Specified by:
getDimSource
in interface MathTransform
- See Also:
CT_MathTransform.getDimSource()
getDimTarget
public final int getDimTarget()
- Gets the dimension of output points.
- Specified by:
getDimTarget
in interface MathTransform
- See Also:
CT_MathTransform.getDimTarget()
longitudeToRadians
static double longitudeToRadians(double x,
boolean edge)
throws java.lang.IllegalArgumentException
- Convertit en radians une longitude exprimée en degrés. Au passage, cette méthode vérifiera
si la longitude est bien dans les limites permises (±180°). Cette méthode est utile pour
vérifier la validité des paramètres de la projection, comme
#setCentralLongitude
.
- Parameters:
x
- Longitude à vérifier, en degrés.edge
- true
pour accepter les longitudes de ±180°.
- Returns:
- Longitude en radians.
- Throws:
java.lang.IllegalArgumentException
- si la longitude est invalide.
latitudeToRadians
static double latitudeToRadians(double y,
boolean edge)
throws java.lang.IllegalArgumentException
- Convertit en radians une latitude exprimée en degrés. Au passage, cette méthode vérifiera
si la latitude est bien dans les limites permises (±90°). Cette méthode est utile pour
vérifier la validité des paramètres de la projection, comme
#setCentralLongitude
.
- Parameters:
y
- Latitude à vérifier, en degrés.edge
- true
pour accepter les latitudes de ±90°.
- Returns:
- Latitude en radians.
- Throws:
java.lang.IllegalArgumentException
- si la latitude est invalide.
transform
public final java.awt.geom.Point2D transform(java.awt.geom.Point2D ptSrc,
java.awt.geom.Point2D ptDst)
throws TransformException
- Transforms the specified
ptSrc
and stores the result in ptDst
.
- Specified by:
transform
in interface MathTransform2D
- Overrides:
transform
in class AbstractMathTransform
- Parameters:
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.
- Returns:
- the coordinate point after transforming
ptSrc
and stroring the result in ptDst
.
- Throws:
TransformException
- if the point can't be transformed.- See Also:
MathTransform2D.transform(Point2D,Point2D)
transform
public final void transform(double[] src,
int srcOffset,
double[] dest,
int dstOffset,
int numPts)
throws TransformException
- Transforms a list of coordinate point ordinal values.
Ordinates must be (longitude,latitude)
pairs in degrees.
- Specified by:
transform
in interface MathTransform
- Parameters:
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.
- Throws:
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.
transform
public final void transform(float[] src,
int srcOffset,
float[] dest,
int dstOffset,
int numPts)
throws TransformException
- Transforms a list of coordinate point ordinal values.
Ordinates must be (longitude,latitude)
pairs in degrees.
- Specified by:
transform
in interface MathTransform
- Overrides:
transform
in class AbstractMathTransform
- Throws:
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.
createTransformedShape
public final java.awt.Shape createTransformedShape(java.awt.Shape shape)
throws TransformException
- Transforme la forme géométrique
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.
- Specified by:
createTransformedShape
in interface MathTransform2D
- Overrides:
createTransformedShape
in class AbstractMathTransform
- Parameters:
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.
- Returns:
- Forme géométrique transformée. Les coordonnées des points de
cette forme seront exprimées en mètres.
- Throws:
TransformException
- si une transformation a échouée.- See Also:
MathTransform2D.createTransformedShape(Shape)
inverseTransform
public final java.awt.geom.Point2D inverseTransform(java.awt.geom.Point2D ptSrc,
java.awt.geom.Point2D ptDst)
throws TransformException
- Inverse transforms the specified
ptSrc
and stores the result in ptDst
.
- Parameters:
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.
- Returns:
- the coordinate point after transforming
ptSrc
and stroring the result in ptDst
.
- Throws:
TransformException
- if the point can't be transformed.
inverseTransform
public final void inverseTransform(double[] src,
int srcOffset,
double[] dest,
int dstOffset,
int numPts)
throws TransformException
- Inverse transforms a list of coordinate point ordinal values.
Ordinates must be (x,y) pairs in metres.
- Throws:
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.
inverseTransform
public final void inverseTransform(float[] src,
int srcOffset,
float[] dest,
int dstOffset,
int numPts)
throws TransformException
- Inverse transforms a list of coordinate point ordinal values.
Ordinates must be (x,y) pairs in metres.
- Throws:
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.
cphi2
final double cphi2(double ts)
throws TransformException
- Iteratively solve equation (7-9) from Snyder.
- Throws:
TransformException
msfn
final 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.
tsfn
final double tsfn(double phi,
double sinphi)
- Compute function (15-9) from Snyder
equivalent to negative of function (7-7).
inverse
public final MathTransform inverse()
- Returns the inverse of this map projection.
- Specified by:
inverse
in interface MathTransform
- Overrides:
inverse
in class AbstractMathTransform
isIdentity
public final boolean isIdentity()
- Returns
false
since map
projections are not identity transforms.
- Specified by:
isIdentity
in interface MathTransform
- Returns:
true
if this MathTransform
is
an identity transform; false
otherwise.
toString
public final java.lang.String toString()
- Retourne une chaîne de caractères représentant cette projection cartographique.
Cette chaîne de caractères contiendra entre autres le nom de la projection, les
coordonnées du centre et celles de l'origine.
- Overrides:
toString
in class AbstractMathTransform
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD