| org.geotools.referencing.operation.projection.MapProjection org.geotools.referencing.operation.projection.TransverseMercator
TransverseMercator | public class TransverseMercator extends MapProjection (Code) | | 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
proj4 package of the USGS survey, which
have been reproduced verbatim. USGS work is acknowledged here.
References:
- Proj-4.4.6 available at www.remotesensing.org/proj
Relevent files are:
PJ_tmerc.c ,
pj_mlfn.c ,
pj_fwd.c and
pj_inv.c .
- John P. Snyder (Map Projections - A Working Manual,
U.S. Geological Survey Professional Paper 1395, 1987).
- "Coordinate Conversions and Transformations including Formulas",
EPSG Guidence Note Number 7, Version 19.
See Also: Transverse Mercator projection on MathWorld See Also: "Transverse_Mercator" on RemoteSensing.org since: 2.1 version: $Id: TransverseMercator.java 25262 2007-04-23 21:11:16Z desruisseaux $ author: André Gosselin author: Martin Desruisseaux author: Rueben Schulz |
Inner Class :public static class Provider extends AbstractProvider | |
Inner Class :public static class Provider_SouthOrientated extends Provider | |
Constructor Summary | |
protected | TransverseMercator(ParameterValueGroup parameters) Constructs a new map projection from the supplied parameters. |
Method Summary | |
public boolean | equals(Object object) Compares the specified object with this map projection for equality. | public double | getCentralMeridian() Convenience method returning the meridian in the middle of current zone. | public ParameterDescriptorGroup | getParameterDescriptors() | protected double | getToleranceForAssertions(double longitude, double latitude) | public int | getZone() Convenience method computing the zone code from the central meridian.
The zone number, using the scalefactor and false easting to decide if this is a UTM or MTM case. | public int | hashCode() Returns a hash value for this projection. | protected Point2D | inverseTransformNormalized(double x, double y, Point2D ptDst) Transforms the specified (x,y) coordinates
and stores the result in
ptDst . | protected Point2D | transformNormalized(double x, double y, Point2D ptDst) Transforms the specified (λ,φ) coordinates
(units in radians) and stores the result in
ptDst (linear distance
on a unit sphere). |
TransverseMercator | protected TransverseMercator(ParameterValueGroup parameters) throws ParameterNotFoundException(Code) | | Constructs a new map projection from the supplied parameters.
Parameters: parameters - The parameter values in standard units. throws: ParameterNotFoundException - if a mandatory parameter is missing. |
equals | public boolean equals(Object object)(Code) | | Compares the specified object with this map projection for equality.
|
getCentralMeridian | public double getCentralMeridian()(Code) | | Convenience method returning the meridian in the middle of current zone. This meridian is
typically the central meridian. This method may be invoked to make sure that the central
meridian is correctly set.
The central meridian, using the scalefactor and false easting to decide if this is a UTM or MTM case. Returns Double.NaNif the case of the projection cannot be determined. |
getParameterDescriptors | public ParameterDescriptorGroup getParameterDescriptors()(Code) | | |
getToleranceForAssertions | protected double getToleranceForAssertions(double longitude, double latitude)(Code) | | |
getZone | public int getZone()(Code) | | Convenience method computing the zone code from the central meridian.
The zone number, using the scalefactor and false easting to decide if this is a UTM or MTM case. Returns 0 if the case of the projection cannot be determined. |
hashCode | public int hashCode()(Code) | | Returns a hash value for this projection.
|
inverseTransformNormalized | protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code) | | Transforms the specified (x,y) coordinates
and stores the result in
ptDst .
|
transformNormalized | protected Point2D transformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code) | | Transforms the specified (λ,φ) coordinates
(units in radians) and stores the result in
ptDst (linear distance
on a unit sphere).
|
Methods inherited from org.geotools.referencing.operation.projection.MapProjection | static boolean checkInverseTransform(double longitude, double latitude, Point2D expected, double tolerance)(Code)(Java Doc) static boolean checkInverseTransform(double longitude, double latitude, Point2D expected)(Code)(Java Doc) static boolean checkTransform(double x, double y, Point2D expected, double tolerance)(Code)(Java Doc) static boolean checkTransform(double x, double y, Point2D expected)(Code)(Java Doc) final double cphi2(double ts) throws ProjectionException(Code)(Java Doc) final double doubleValue(Collection expected, ParameterDescriptor param, ParameterValueGroup group) throws ParameterNotFoundException(Code)(Java Doc) static void ensureLatitudeEquals(ParameterDescriptor name, double y, double expected) throws IllegalArgumentException(Code)(Java Doc) static void ensureLatitudeInRange(ParameterDescriptor name, double y, boolean edge) throws IllegalArgumentException(Code)(Java Doc) static void ensureLongitudeInRange(ParameterDescriptor name, double x, boolean edge) throws IllegalArgumentException(Code)(Java Doc) final void ensureSpherical() throws IllegalArgumentException(Code)(Java Doc) public boolean equals(Object object)(Code)(Java Doc) static boolean equals(double value1, double value2)(Code)(Java Doc) abstract public ParameterDescriptorGroup getParameterDescriptors()(Code)(Java Doc) public ParameterValueGroup getParameterValues()(Code)(Java Doc) final public int getSourceDimensions()(Code)(Java Doc) final public int getTargetDimensions()(Code)(Java Doc) protected double getToleranceForAssertions(double longitude, double latitude)(Code)(Java Doc) public int hashCode()(Code)(Java Doc) final public MathTransform inverse()(Code)(Java Doc) abstract protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code)(Java Doc) boolean isExpectedParameter(Collection expected, ParameterDescriptor param)(Code)(Java Doc) final double msfn(double s, double c)(Code)(Java Doc) final void set(Collection expected, ParameterDescriptor param, ParameterValueGroup group, double value)(Code)(Java Doc) final public Point2D transform(Point2D ptSrc, Point2D ptDst) throws ProjectionException(Code)(Java Doc) final public void transform(double[] src, int srcOffset, double[] dest, int dstOffset, int numPts) throws ProjectionException(Code)(Java Doc) final public void transform(float[] src, int srcOffset, float[] dest, int dstOffset, int numPts) throws ProjectionException(Code)(Java Doc) abstract protected Point2D transformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code)(Java Doc) final double tsfn(double phi, double sinphi)(Code)(Java Doc)
|
|
|