public abstract class Stereographic extends MapProjection
This implementation, and its subclasses, provides transforms for six cases of the stereographic projection:
"Oblique_Stereographic"
(EPSG code 9809), alias "Double_Stereographic"
in
ESRI software
"Stereographic"
in ESRI software (NOT EPSG code 9809)
"Polar_Stereographic"
(EPSG code 9810, uses a series calculation for the inverse)
"Polar_Stereographic (variant B)"
(EPSG code 9829, uses a series calculation for
the inverse)
"Stereographic_North_Pole"
in ESRI software (uses iteration for the inverse)
"Stereographic_South_Pole"
in ESRI software (uses iteration for the inverse)
Both the "Oblique_Stereographic"
and "Stereographic"
projections are "double"
projections involving two parts: 1) a conformal transformation of the geographic coordinates to a
sphere and 2) a spherical Stereographic projection. The EPSG considers both methods to be valid,
but considers them to be a different coordinate operation methods.
The "Stereographic"
case uses the USGS equations of Snyder. This employs a simplified
conversion to the conformal sphere that computes the conformal latitude of each point on the
sphere.
The "Oblique_Stereographic"
case uses equations from the EPSG. This uses a more
generalized form of the conversion to the conformal sphere; using only a single conformal sphere
at the origin point. Since this is a "double" projection, it is sometimes called the "Double
Stereographic". The "Oblique_Stereographic"
is used in New Brunswick (Canada) and the
Netherlands.
The "Stereographic"
and "Double_Stereographic"
names are used in ESRI's ArcGIS
8.x product. The "Oblique_Stereographic"
name is the EPSG name for the later only.
WARNING: Tests points calculated with ArcGIS's "Double_Stereographic"
are not always equal to points calculated with the "Oblique_Stereographic"
. However,
where there are differences, two different implementations of these equations (EPSG guidence note
7 and libproj
) calculate the same values as we do. Until these differences are resolved,
please be careful when using this projection.
If a "latitude_of_origin"
parameter is
supplied and is not consistent with the projection classification (for example a latitude
different from ±90° for the polar case), then the oblique or polar case will be
automatically inferred from the latitude. In other words, the latitude of origin has precedence
on the projection classification. If ommited, then the default value is 90°N for "Polar_Stereographic"
and 0° for "Oblique_Stereographic"
.
Polar projections that use the series equations for the inverse calculation will be little bit
faster, but may be a little bit less accurate. If a polar "latitude_of_origin"
is used for the "Oblique_Stereographic"
or "Stereographic"
, the iterative equations will be used for
inverse polar calculations.
The "Polar Stereographic (variant B)"
, "Stereographic_North_Pole"
, and "Stereographic_South_Pole"
cases include a "standard_parallel_1"
parameter. This parameter sets the latitude with a scale factor equal to
the supplied scale factor. The "Polar Stereographic (variant A)"
receives its "latitude_of_origin"
parameter value from the hemisphere of the "latitude_of_origin"
value (i.e. the value is
forced to ±90°).
References:
Modifier and Type | Class and Description |
---|---|
static class |
Stereographic.Provider
The math transform
provider for a Stereographic projections using USGS equations.
|
MapProjection.AbstractProvider
centralMeridian, en0, en1, en2, en3, en4, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, invertible, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor, SKIP_SANITY_CHECKS
SINGLE_LINE
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object object)
Compares the specified object with this map projection for equality.
|
ParameterDescriptorGroup |
getParameterDescriptors()
Returns the parameter descriptors for this map projection.
|
int |
hashCode()
Returns a hash value for this map projection.
|
checkReciprocal, getParameterValues, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, inv_mlfn, inverse, inverseTransformNormalized, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform, transformNormalized
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transform
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
createTransformedShape, derivative
derivative, isIdentity, toWKT, transform, transform, transform
public ParameterDescriptorGroup getParameterDescriptors()
MapProjection.getParameterValues()
, as well as arguments checking.getParameterDescriptors
in class MapProjection
null
.OperationMethod.getParameters()
public boolean equals(Object object)
equals
in class MapProjection
object
- The object to compare with this transform.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.public int hashCode()
MapProjection
hashCode
in class MapProjection
Copyright © 1996–2019 Geotools. All rights reserved.