|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.geotools.referencing.wkt.Formattable org.geotools.referencing.operation.transform.AbstractMathTransform org.geotools.referencing.operation.projection.MapProjection org.geotools.referencing.operation.projection.TransverseMercator
Transverse Mercator Projection (EPSG code 9807). This is a cylindrical projection, in which the cylinder has been rotated 90?. Instead of being tangent to the equator (or to an other standard latitude), it is tangent to a central meridian. Deformation are more important as we are going futher from the central meridian. The Transverse Mercator projection is appropriate for region wich have a greater extent north-south than east-west.
The elliptical equations used here are series approximations, and their accuracy decreases as points move farther from the central meridian of the projection. The forward equations here are accurate to a less than a mm ±10 degrees from the central meridian, a few mm ±15 degrees from the central meridian and a few cm ±20 degrees from the central meridian. The spherical equations are not approximations and should always give the correct values.
There are a number of versions of the transverse mercator projection including the Universal (UTM) and Modified (MTM) Transverses Mercator projections. In these cases the earth is divided into zones. For the UTM the zones are 6 degrees wide, numbered from 1 to 60 proceeding east from 180 degrees longitude, and between lats 84 degrees North and 80 degrees South. The central meridian is taken as the center of the zone and the latitude of origin is the equator. A scale factor of 0.9996 and false easting of 500000m is used for all zones and a false northing of 10000000m is used for zones in the southern hemisphere.
NOTE: formulas used below are not those of Snyder, but rather those from the package of the USGS survey, which have been reproduced verbatim. USGS work is acknowledged here.
References:
Nested Class Summary | |
static class |
TransverseMercator.Provider
The MathTransformProvider
for a TransverseMercator projection. |
static class |
TransverseMercator.Provider_SouthOrientated
The MathTransformProvider for a South Orientated
TransverseMercator projection (EPSG code 9808). |
Nested classes inherited from class org.geotools.referencing.operation.projection.MapProjection |
MapProjection.AbstractProvider |
Field Summary |
Fields inherited from class org.geotools.referencing.operation.projection.MapProjection |
centralMeridian, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, isSpherical, latitudeOfOrigin, scaleFactor, semiMajor, semiMinor |
Constructor Summary | |
protected |
TransverseMercator(org.opengis.parameter.ParameterValueGroup parameters)
Constructs a new map projection from the supplied parameters. |
Method Summary | |
boolean |
equals(java.lang.Object object)
Compares the specified object with this map projection for equality. |
double |
getCentralMeridian()
Convenience method returning the meridian in the middle of current zone. |
org.opengis.parameter.ParameterDescriptorGroup |
getParameterDescriptors()
Returns the parameter descriptors for this map projection. This is used for a providing a default implementation of MapProjection.getParameterValues() , as well as arguments checking. |
protected double |
getToleranceForAssertions(double longitude,
double latitude)
Maximal error (in metres) tolerated for assertion, if enabled. When assertions are enabled, every direct projection is followed by an inverse projection, and the result is compared to the original coordinate. If a distance greater than the tolerance level is found, then an AssertionError will be thrown. Subclasses should override this method if they need
to relax the tolerance level. |
int |
getZone()
Convenience method computing the zone code from the central meridian. |
int |
hashCode()
Returns a hash value for this projection. |
protected java.awt.geom.Point2D |
inverseTransformNormalized(double x,
double y,
java.awt.geom.Point2D ptDst)
Transforms the specified (x,y) coordinate and stores the result in . |
protected java.awt.geom.Point2D |
transformNormalized(double x,
double y,
java.awt.geom.Point2D ptDst)
Transforms the specified (x,y) coordinate (units in radians) and stores the result in (linear distance on a unit sphere). |
Methods inherited from class org.geotools.referencing.operation.projection.MapProjection |
getParameterValues, getSourceDimensions, getTargetDimensions, inverse, transform, transform, transform |
Methods inherited from class org.geotools.referencing.operation.transform.AbstractMathTransform |
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getDimSource, getDimTarget, isIdentity, needCopy, rollLongitude, transform |
Methods inherited from class org.geotools.referencing.wkt.Formattable |
toString, toWKT, toWKT, toWKT |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.opengis.referencing.operation.MathTransform2D |
createTransformedShape, derivative |
Methods inherited from interface org.opengis.referencing.operation.MathTransform |
derivative, isIdentity, toWKT, transform |
Constructor Detail |
protected TransverseMercator(org.opengis.parameter.ParameterValueGroup parameters) throws org.opengis.parameter.ParameterNotFoundException
parameters
- The parameter values in standard units.
org.opengis.parameter.ParameterNotFoundException
- if a mandatory parameter is missing.Method Detail |
public org.opengis.parameter.ParameterDescriptorGroup getParameterDescriptors()
MapProjection.getParameterValues()
, as well as arguments checking.
getParameterDescriptors
in class MapProjection
protected java.awt.geom.Point2D transformNormalized(double x, double y, java.awt.geom.Point2D ptDst) throws ProjectionException
transformNormalized
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
, or . Ordinates will be in a
dimensionless unit, as a linear distance on a unit sphere or ellipse.
ProjectionException
- if the point can't be transformed.protected java.awt.geom.Point2D inverseTransformNormalized(double x, double y, java.awt.geom.Point2D ptDst) throws ProjectionException
inverseTransformNormalized
in class MapProjection
x
- The easting of the coordinate, linear distance on a unit sphere or ellipse.y
- The northing of the coordinate, linear distance on a unit sphere or ellipse.ptDst
- the specified coordinate point that stores the result of transforming
, or . Ordinates will be in
radians.
ProjectionException
- if the point can't be transformed.protected double getToleranceForAssertions(double longitude, double latitude)
AssertionError
will be thrown. Subclasses should override this method if they need
to relax the tolerance level.
getToleranceForAssertions
in class MapProjection
longitude
- The longitude in degrees.latitude
- The latitude in degrees.
public int getZone()
public double getCentralMeridian()
Double.NaN
if the case of the projection cannot be determined.public int hashCode()
hashCode
in class MapProjection
public boolean equals(java.lang.Object object)
equals
in class MapProjection
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |