Class ObliqueStereographic
- Object
-
- Formattable
-
- AbstractMathTransform
-
- MapProjection
-
- Stereographic
-
- ObliqueStereographic
-
- All Implemented Interfaces:
Serializable
,MathTransform
,MathTransform2D
public class ObliqueStereographic extends Stereographic
Provides the transform equations for the Oblique Stereographic (EPSG code 9809). The formulas used below are not from the EPSG, but rather those of the "Oblique Stereographic Alternative" in thelibproj4
package written by Gerald Evenden. His work is acknowledged here and greatly appreciated.The forward equations used in
libproj4
are the same as those given in the UNB reports for the Double Stereographic. The inverse equations are similar, but use different methods to iterate for the latitude.References:
libproj4
is available at libproj4 Miscellanea
Relevent files are:PJ_sterea.c
,pj_gauss.c
,pj_fwd.c
,pj_inv.c
andlib_proj.h
- Gerald Evenden. "Supplementary PROJ.4 Notes - Oblique Stereographic Alternative"
- "Coordinate Conversions and Transformations including Formulas", EPSG Guidence Note Number 7, Version 19.
- Krakiwsky, E.J., D.B. Thomson, and R.R. Steeves. 1977. A Manual For Geodetic Coordinate Transformations in the Maritimes. Geodesy and Geomatics Engineering, UNB. Technical Report No. 48.
- Thomson, D.B., M.P. Mepham and R.R. Steeves. 1977. The Stereographic Double Projection. Surveying Engineering, University of New Brunswick. Technical Report No. 46.
- Since:
- 2.4
- Author:
- Gerald I. Evenden (for original code in Proj4), Rueben Schulz
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ObliqueStereographic.Provider
The math transform provider for a stereographic projection of any kind.-
Nested classes/interfaces inherited from class MapProjection
MapProjection.AbstractProvider
-
-
Field Summary
-
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
Constructors Modifier Constructor Description protected
ObliqueStereographic(ParameterValueGroup parameters)
Constructs an oblique stereographic projection (EPSG equations).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected double
getToleranceForAssertions(double longitude, double latitude)
Maximal error (in metres) tolerated for assertions, if enabled.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 Stereographic
equals, getParameterDescriptors, hashCode
-
Methods inherited from class MapProjection
checkReciprocal, getParameterValues, getSourceDimensions, getTargetDimensions, 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
-
-
-
-
Constructor Detail
-
ObliqueStereographic
protected ObliqueStereographic(ParameterValueGroup parameters) throws ParameterNotFoundException
Constructs an oblique stereographic projection (EPSG equations).- Parameters:
parameters
- The group of parameter values.- Throws:
ParameterNotFoundException
- if a required parameter was not found.
-
-
Method Detail
-
transformNormalized
protected Point2D transformNormalized(double x, double y, Point2D ptDst) throws ProjectionException
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(linear distance on a unit sphere).- 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
.- 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.
-
getToleranceForAssertions
protected double getToleranceForAssertions(double longitude, double latitude)
Maximal error (in metres) tolerated for assertions, if enabled.- Overrides:
getToleranceForAssertions
in classMapProjection
- Parameters:
longitude
- The longitude in decimal degrees.latitude
- The latitude in decimal degrees.- Returns:
- The tolerance level for assertions, in meters.
-
-