Class 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 the libproj4 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 and lib_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
    • 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 in ptDst (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 transforming ptSrc, or null. 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 in ptDst.
        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 in ptDst.
        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 transforming ptSrc, or null. Ordinates will be in radians.
        Returns:
        the coordinate point after transforming x, y and storing the result in ptDst.
        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 class MapProjection
        Parameters:
        longitude - The longitude in decimal degrees.
        latitude - The latitude in decimal degrees.
        Returns:
        The tolerance level for assertions, in meters.