Class Mercator
- All Implemented Interfaces:
Serializable
,MathTransform
,MathTransform2D
- Direct Known Subclasses:
Mercator1SP
,Mercator2SP
Mercator Cylindrical Projection. The parallels and the meridians are straight lines and cross at right angles; this
projection thus produces rectangular charts. The scale is true along the equator (by default) or along two parallels
equidistant of the equator (if a scale factor other than 1 is used). This projection is used to represent areas close
to the equator. It is also often used for maritime navigation because all the straight lines on the chart are
loxodrome lines, i.e. a ship following this line would keep a constant azimuth on its compass.
This implementation handles both the 1 and 2 stardard parallel cases. For Mercator_1SP
(EPSG code 9804),
the line of contact is the equator. For Mercator_2SP
(EPSG code 9805) lines of contact are symmetrical about
the equator.
References:
- 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:
- 2.1
- Author:
- André Gosselin, Martin Desruisseaux (PMO, IRD), Rueben Schulz, Simone Giannecchini
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class MapProjection
MapProjection.AbstractProvider
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final double
Standard Parallel used for theMercator2SP
case.Fields inherited from class MapProjection
centralMeridian, en0, en1, en2, en3, en4, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, invertible, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor, SKIP_SANITY_CHECKS
Fields inherited from class Formattable
SINGLE_LINE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Mercator
(ParameterValueGroup parameters) Constructs a new map projection from the supplied parameters. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Compares the specified object with this map projection for equality.Returns the parameter values for this map projection.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 inptDst
.protected Point2D
transformNormalized
(double x, double y, Point2D ptDst) Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(linear distance on a unit sphere).Methods inherited from class MapProjection
checkReciprocal, getParameterDescriptors, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, inv_mlfn, inverse, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transform
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform
Methods inherited from interface MathTransform2D
createTransformedShape, derivative
-
Field Details
-
standardParallel
protected final double standardParallel
-
-
Constructor Details
-
Mercator
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.
-
-
Method Details
-
getParameterValues
Returns the parameter values for this map projection.- Overrides:
getParameterValues
in classMapProjection
- Returns:
- A copy of the parameter values for this map projection.
- See Also:
-
transformNormalized
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(linear distance on a unit sphere).- Specified by:
transformNormalized
in classMapProjection
- 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 transformingptSrc
, ornull
. Ordinates will be in a dimensionless unit, as a linear distance on a unit sphere or ellipse.- Returns:
- the coordinate point after transforming (
lambda
,phi
) and storing the result inptDst
. - Throws:
ProjectionException
- if the point can't be transformed.
-
inverseTransformNormalized
protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException Transforms the specified (x,y) coordinates and stores the result inptDst
.- Specified by:
inverseTransformNormalized
in classMapProjection
- Parameters:
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 transformingptSrc
, ornull
. Ordinates will be in radians.- Returns:
- the coordinate point after transforming
x
,y
and storing the result inptDst
. - Throws:
ProjectionException
- if the point can't be transformed.
-
hashCode
public int hashCode()Returns a hash value for this projection.- Overrides:
hashCode
in classMapProjection
-
equals
Compares the specified object with this map projection for equality.- Overrides:
equals
in classMapProjection
- Parameters:
object
- The object to compare with this transform.- Returns:
true
if the given object is a transform of the same class and if, given identical source position, the transformed position would be the equals.
-