Class LambertAzimuthalEqualArea
- java.lang.Object
-
- org.openstreetmap.josm.data.projection.proj.AbstractProj
-
- org.openstreetmap.josm.data.projection.proj.LambertAzimuthalEqualArea
-
- All Implemented Interfaces:
Proj
public class LambertAzimuthalEqualArea extends AbstractProj
Lambert Azimuthal Equal Area (EPSG code 9820).This class has been derived from the implementation of the Geotools project; git 8cbf52d, org.geotools.referencing.operation.projection.LambertAzimuthalEqualArea at the time of migration.
References:
- A. Annoni, C. Luzet, E.Gubler and J. Ihde - Map Projections for Europe
- John P. Snyder (Map Projections - A Working Manual, U.S. Geological Survey Professional Paper 1395)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classLambertAzimuthalEqualArea.ModeThe projection mode.
-
Field Summary
Fields Modifier and Type Field Description private doubleaPA0Coefficients for authalic latitude.private doubleaPA1Coefficients for authalic latitude.private doubleaPA2Coefficients for authalic latitude.private doublecosb1Constant parameters.private doubleddConstant parameters.private static doubleEPSILONMaximum difference allowed when comparing real numbers.private static doubleEPSILON_LATITUDEEpsilon for the comparison of latitudes.private static doubleFINE_EPSILONEpsilon for the comparison of small quantities.private doublelatitudeOfOriginprivate LambertAzimuthalEqualArea.ModemodeThe projection mode for this particular instance.private static doubleP00Constants for authalic latitude.private static doubleP01private static doubleP02private static doubleP10private static doubleP11private static doubleP20private doubleqpConstant parameters.private doublerqConstant parameters.private doublesinb1Constant parameters.private doublexmfConstant parameters.private doubleymfConstant parameters.
-
Constructor Summary
Constructors Constructor Description LambertAzimuthalEqualArea()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private doubleauthlat(double beta)Determines latitude from authalic latitude.BoundsgetAlgorithmBounds()Return the bounds where this projection is applicable.java.lang.StringgetName()Replies a human readable name of this projection.java.lang.StringgetProj4Id()Replies the Proj.4 identifier.voidinitialize(ProjParameters params)Initialize the projection using the provided parameters.double[]invproject(double x, double y)Convert east/north to lat/lon.private double[]invprojectEO(double x, double y)private double[]invprojectNS(double x, double y)double[]project(double phi, double lambda)Convert lat/lon to east/north.private doubleqsfn(double sinphi)Calculates q, Snyder equation (3-12)-
Methods inherited from class org.openstreetmap.josm.data.projection.proj.AbstractProj
aasin, cphi2, invMlfn, isGeographic, mlfn, msfn, tsfn
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.data.projection.proj.Proj
lonIsLinearToEast
-
-
-
-
Field Detail
-
EPSILON
private static final double EPSILON
Maximum difference allowed when comparing real numbers.- See Also:
- Constant Field Values
-
FINE_EPSILON
private static final double FINE_EPSILON
Epsilon for the comparison of small quantities.- See Also:
- Constant Field Values
-
EPSILON_LATITUDE
private static final double EPSILON_LATITUDE
Epsilon for the comparison of latitudes.- See Also:
- Constant Field Values
-
P00
private static final double P00
Constants for authalic latitude.- See Also:
- Constant Field Values
-
P01
private static final double P01
- See Also:
- Constant Field Values
-
P02
private static final double P02
- See Also:
- Constant Field Values
-
P10
private static final double P10
- See Also:
- Constant Field Values
-
P11
private static final double P11
- See Also:
- Constant Field Values
-
P20
private static final double P20
- See Also:
- Constant Field Values
-
mode
private LambertAzimuthalEqualArea.Mode mode
The projection mode for this particular instance.
-
sinb1
private double sinb1
Constant parameters.
-
cosb1
private double cosb1
Constant parameters.
-
xmf
private double xmf
Constant parameters.
-
ymf
private double ymf
Constant parameters.
-
qp
private double qp
Constant parameters.
-
dd
private double dd
Constant parameters.
-
rq
private double rq
Constant parameters.
-
aPA0
private double aPA0
Coefficients for authalic latitude.
-
aPA1
private double aPA1
Coefficients for authalic latitude.
-
aPA2
private double aPA2
Coefficients for authalic latitude.
-
latitudeOfOrigin
private double latitudeOfOrigin
-
-
Constructor Detail
-
LambertAzimuthalEqualArea
public LambertAzimuthalEqualArea()
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from interface:ProjReplies a human readable name of this projection.- Returns:
- The projection name. must not be null.
-
getProj4Id
public java.lang.String getProj4Id()
Description copied from interface:ProjReplies the Proj.4 identifier.- Returns:
- The Proj.4 identifier (as reported by cs2cs -lp).
If no id exists, return
null.
-
initialize
public void initialize(ProjParameters params) throws ProjectionConfigurationException
Description copied from interface:ProjInitialize the projection using the provided parameters.- Specified by:
initializein interfaceProj- Overrides:
initializein classAbstractProj- Parameters:
params- The projection parameters- Throws:
ProjectionConfigurationException- in case parameters are not suitable
-
project
public double[] project(double phi, double lambda)
Description copied from interface:ProjConvert lat/lon to east/north.- Parameters:
phi- the latitude in radianslambda- the longitude in radians- Returns:
- array of length 2, containing east and north value in meters, divided by the semi major axis of the ellipsoid.
-
invproject
public double[] invproject(double x, double y)
Description copied from interface:ProjConvert east/north to lat/lon.- Parameters:
x- east value in meters, divided by the semi major axis of the ellipsoidy- north value in meters, divided by the semi major axis of the ellipsoid- Returns:
- array of length 2, containing lat and lon in radians.
-
invprojectEO
private double[] invprojectEO(double x, double y)
-
invprojectNS
private double[] invprojectNS(double x, double y)
-
qsfn
private double qsfn(double sinphi)
Calculates q, Snyder equation (3-12)- Parameters:
sinphi- sin of the latitude q is calculated for.- Returns:
- q from Snyder equation (3-12).
-
authlat
private double authlat(double beta)
Determines latitude from authalic latitude.- Parameters:
beta- authalic latitude- Returns:
- corresponding latitude
-
getAlgorithmBounds
public Bounds getAlgorithmBounds()
Description copied from interface:ProjReturn the bounds where this projection is applicable. This is a fallback for when the projection bounds are not specified explicitly. In this area, the round trip lat/lon → east/north → lat/lon should return the starting value with small error. In addition, regions with extreme distortions should be excluded, if possible. It need not be the absolute maximum, but rather an area that is safe to display in JOSM and contain everything that one would expect to use.- Returns:
- the bounds where this projection is applicable, null if unknown
-
-