org.geotoolkit.referencing.operation.projection
Class TransverseMercator
Object
FormattableObject
AbstractMathTransform
AbstractMathTransform2D
UnitaryProjection
TransverseMercator
- All Implemented Interfaces:
- Serializable, Formattable, Parameterized, LenientComparable, MathTransform, MathTransform2D
@Immutable
public class TransverseMercator
- extends UnitaryProjection
Transverse Mercator Projection (EPSG codes 9807, 9808). See the
Mercator projection on MathWorld
for an overview. See any of the following providers for a list of programmatic parameters:
Description
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 less than a millimetre ±10 degrees from the central meridian, a few
millimetres ±15 degrees from the central meridian and a few centimetres ±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 500000 metres is used for all zones and a false northing
of 10000000 metres is used for zones in the southern hemisphere.
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.
- Since:
- 1.0
- Version:
- 3.16
- Author:
- Gerald Evenden (USGS), André Gosselin (MPO), Martin Desruisseaux (MPO, IRD, Geomatys), Rueben Schulz (UBC)
- See Also:
Mercator,
ObliqueMercator,
Serialized Form
- Module:
|
Method Summary |
static MathTransform2D |
create(ParameterDescriptorGroup descriptor,
ParameterValueGroup values)
Creates a Transverse Mercator projection from the given parameters. |
Matrix |
derivative(Point2D point)
Gets the derivative of this transform at a point. |
protected void |
inverseTransform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
Transforms the specified (x,y) coordinates
and stores the result in dstPts (angles in radians). |
protected void |
transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
Transforms the specified (λ,φ) coordinates
(units in radians) and stores the result in dstPts (linear distance
on a unit sphere). |
| Methods inherited from class AbstractMathTransform |
createTransformedShape, derivative, ensureNonNull, equals, formatWKT, getName, hashCode, isIdentity, rollLongitude, transform, transform, transform, transform |
TransverseMercator
protected TransverseMercator(TransverseMercator.Parameters parameters)
- Constructs a new map projection from the supplied parameters.
- Parameters:
parameters - The parameters of the projection to be created.
create
public static MathTransform2D create(ParameterDescriptorGroup descriptor,
ParameterValueGroup values)
- Creates a Transverse Mercator projection from the given parameters. The descriptor argument
is usually
TransverseMercator.PARAMETERS,
but is not restricted to. If a different descriptor is supplied, it is user's responsibility
to ensure that it is suitable to a Transverse Mercator projection.
- Parameters:
descriptor - Typically TransverseMercator.PARAMETERS.values - The parameter values of the projection to create.
- Returns:
- The map projection.
- Since:
- 3.00
transform
protected void transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
throws ProjectionException
- Transforms the specified (λ,φ) coordinates
(units in radians) and stores the result in
dstPts (linear distance
on a unit sphere).
- Specified by:
transform in class UnitaryProjection
- Parameters:
srcPts - The array containing the source point coordinate, as (longitude,
latitude) angles in radians.srcOff - The offset of the point to be converted in the source array.dstPts - the array into which the converted point coordinate is returned (may be
the same than srcPts). Ordinates will be in a dimensionless unit,
as a linear distance on a unit sphere or ellipse.dstOff - The offset of the location of the converted point that is
stored in the destination array.
- Throws:
ProjectionException - if the point can't be converted.
inverseTransform
protected void inverseTransform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
throws ProjectionException
- Transforms the specified (x,y) coordinates
and stores the result in
dstPts (angles in radians).
- Specified by:
inverseTransform in class UnitaryProjection
- Parameters:
srcPts - The array containing the source point coordinate, as linear distance
on a unit sphere or ellipse.srcOff - The offset of the point to be converted in the source array.dstPts - the array into which the converted point coordinate is returned (may be
the same than srcPts). Ordinates will be (longitude,
latitude) angles in radians.dstOff - The offset of the location of the converted point that is
stored in the destination array.
- Throws:
ProjectionException - if the point can't be converted.
derivative
public Matrix derivative(Point2D point)
throws ProjectionException
- Gets the derivative of this transform at a point.
The current implementation is derived from the spherical formulas.
- Specified by:
derivative in interface MathTransform2D- Overrides:
derivative in class AbstractMathTransform
- Parameters:
point - The coordinate point where to evaluate the derivative.
- Returns:
- The derivative at the specified point as a 2×2 matrix.
- Throws:
ProjectionException - if the derivative can't be evaluated at the specified point.- Since:
- 3.16
- See Also:
MathTransform2D.derivative(Point2D)
Copyright © 2009-2011 Geotoolkit.org. All Rights Reserved.