Class ObliqueMercator
-
- All Implemented Interfaces:
Serializable
,Parameterized
,LenientComparable
,MathTransform
,MathTransform2D
public class ObliqueMercator extends NormalizedProjection
Oblique Mercator projection (EPSG codes 9812, 9815). The Oblique Mercator projection can be seen as a generalization ofMercator
andTransverseMercator
projections when the central line is not along the equator or a meridian, respectively. This class covers also the Rectified Skew Orthomorphic (RSO) case.There is different ways to specify the projection parameters:
- Variant A (EPSG:9812) uses false easting/northing defined at the natural origin of the coordinate system.
- Variant B (EPSG:9815) uses false easting/northing defined at the projection center.
- ESRI "Two Points" variant defines the central line with two points instead than with an azimuth angle.
Mercator
andTransverseMercator
projections should be preferred, both for performance and accuracy reasons.- Since:
- 1.0
- See Also:
Mercator
,TransverseMercator
, Serialized Form
Defined in the
sis-referencing
module
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class NormalizedProjection
NormalizedProjection.ParameterRole
-
-
Field Summary
-
Fields inherited from class NormalizedProjection
eccentricity, eccentricitySquared
-
-
Constructor Summary
Constructors Constructor Description ObliqueMercator(OperationMethod method, Parameters parameters)
Creates an Oblique Mercator projection from the given parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff)
Converts the specified (x,y) coordinates and stores the result indstPts
(angles in radians).Matrix
transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate)
Converts the specified (λ,φ) coordinate (units in radians) and stores the result indstPts
.-
Methods inherited from class NormalizedProjection
computeHashCode, createMapProjection, equals, getContextualParameters, getParameterDescriptors, getParameterValues, inverse, tryConcatenate
-
Methods inherited from class AbstractMathTransform2D
createTransformedShape, derivative, getSourceDimensions, getTargetDimensions, transform
-
Methods inherited from class AbstractMathTransform
derivative, equals, formatTo, hashCode, isIdentity, transform, transform, transform, transform, transform
-
Methods inherited from class FormattableObject
print, toString, toString, toWKT
-
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform, transform, transform
-
-
-
-
Constructor Detail
-
ObliqueMercator
public ObliqueMercator(OperationMethod method, Parameters parameters)
Creates an Oblique Mercator projection from the given parameters. Themethod
argument can be the description of one of the following:- "Hotine Oblique Mercator (variant A)".
- "Hotine Oblique Mercator (variant B)".
- "Hotine Oblique Mercator two point center" (from ESRI).
- "Hotine Oblique Mercator two point natural origin" (from ESRI).
- "Rectified Skew Orthomorphic".
- Parameters:
method
- description of the projection parameters.parameters
- the parameter values of the projection to create.
-
-
Method Detail
-
transform
public Matrix transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) throws ProjectionException
Converts the specified (λ,φ) coordinate (units in radians) and stores the result indstPts
. In addition, opportunistically computes the projection derivative ifderivate
istrue
.- Specified by:
transform
in classNormalizedProjection
- Parameters:
srcPts
- the array containing the source point coordinate, as (longitude, latitude) angles in radians.srcOff
- the offset of the single coordinate to be converted in the source array.dstPts
- the array into which the converted coordinate is returned (may be the same thansrcPts
). Coordinates will be expressed in a dimensionless unit, as a linear distance on a unit sphere or ellipse.dstOff
- the offset of the location of the converted coordinate that is stored in the destination array.derivate
-true
for computing the derivative, orfalse
if not needed.- Returns:
- the matrix of the projection derivative at the given source position,
or
null
if thederivate
argument isfalse
. - Throws:
ProjectionException
- if the coordinate can not be converted.- See Also:
AbstractMathTransform.derivative(DirectPosition)
,AbstractMathTransform.transform(DirectPosition, DirectPosition)
,MathTransforms.derivativeAndTransform(MathTransform, double[], int, double[], int)
-
inverseTransform
protected void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff) throws ProjectionException
Converts the specified (x,y) coordinates and stores the result indstPts
(angles in radians).- Specified by:
inverseTransform
in classNormalizedProjection
- 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 thansrcPts
). Coordinates 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 not be converted.
-
-