public class EqualArea extends MapProjection
The projection was designed in 2018 by Bojan Savric, Tom Patterson and Bernhard Jenny.
Publication: Bojan Savric, Tom Patterson & Bernhard Jenny (2018). The Equal Earth map projection, International Journal of Geographical Information Science, DOI: 10.1080/13658816.2018.1504949
Modifier and Type | Class and Description |
---|---|
static class |
EqualArea.Provider
The math transform
provider for an Plate
Carree projection.
|
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
Constructor and Description |
---|
EqualArea(ParameterValueGroup parameters) |
Modifier and Type | Method and Description |
---|---|
ParameterDescriptorGroup |
getParameterDescriptors()
Returns the parameter descriptors for this map projection.
|
protected Point2D |
inverseTransformNormalized(double x,
double y,
Point2D ptDst)
Transforms the specified coordinate and stores the result in
ptDst . |
protected Point2D |
transformNormalized(double lpLambda,
double lpPhi,
Point2D ptDst)
Transforms the specified coordinate and stores the result in
ptDst . |
checkReciprocal, equals, getParameterValues, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, hashCode, inv_mlfn, inverse, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform
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 EqualArea(ParameterValueGroup parameters)
public ParameterDescriptorGroup getParameterDescriptors()
MapProjection
MapProjection.getParameterValues()
, as well as arguments checking.getParameterDescriptors
in class MapProjection
null
.OperationMethod.getParameters()
protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException
MapProjection
ptDst
. This method
returns longitude as x values in the range [-PI..PI]
and latitude as
y values in the range [-PI/2..PI/2]
. It will be checked by the caller, so
this method doesn't need to performs this check.
Input coordinates have the MapProjection.falseEasting
and MapProjection.falseNorthing
removed and
are divided by MapProjection.globalScale
before this method is invoked. After this method is
invoked, the MapProjection.centralMeridian
is added to the x
results in ptDst
.
This means that projections that implement this method are performed on an ellipse (or
sphere) with a semi-major axis of 1.
In PROJ.4, the same standardization,
described above, is handled by pj_inv.c
. Therefore when porting projections from
PROJ.4, the inverse transform equations can be used directly here with minimal change. In the
equations of Snyder, MapProjection.falseEasting
, MapProjection.falseNorthing
and MapProjection.scaleFactor
are usually not given. When implementing these equations here, you will not need to add the
MapProjection.centralMeridian
to the output longitude or remove the MapProjection.semiMajor
(a or R).
inverseTransformNormalized
in class MapProjection
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.x
, y
and storing the result
in ptDst
.ProjectionException
- if the point can't be transformed.protected Point2D transformNormalized(double lpLambda, double lpPhi, Point2D ptDst) throws ProjectionException
MapProjection
ptDst
. This method is
usually (but not guaranteed) to be invoked with values of x in
the range [-PI..PI]
and values of y in the range [-PI/2..PI/2]
.
Values outside those ranges are accepted (sometime with a warning logged) on the assumption
that most implementations use those values only in trigonometric functions like sin and cos.
Coordinates have the MapProjection.centralMeridian
removed from lambda before this
method is invoked. After this method is invoked, the results in ptDst
are multiplied
by MapProjection.globalScale
, and the MapProjection.falseEasting
and MapProjection.falseNorthing
are added.
This means that projections that implement this method are performed on an ellipse (or
sphere) with a semi-major axis of 1.
In PROJ.4, the same standardization,
described above, is handled by pj_fwd.c
. Therefore when porting projections from
PROJ.4, the forward transform equations can be used directly here with minimal change. In the
equations of Snyder, MapProjection.falseEasting
, MapProjection.falseNorthing
and MapProjection.scaleFactor
are usually not given. When implementing these equations here, you will not need to remove
the MapProjection.centralMeridian
from lambda or apply the MapProjection.semiMajor
(a or R).
transformNormalized
in class MapProjection
lpLambda
- The longitude of the coordinate, in radians.lpPhi
- 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.lambda
, phi
) and storing the
result in ptDst
.ProjectionException
- if the point can't be transformed.Copyright © 1996–2019 Geotools. All rights reserved.