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 class
LambertAzimuthalEqualArea.Mode
The projection mode.
-
Field Summary
Fields Modifier and Type Field Description private double
aPA0
Coefficients for authalic latitude.private double
aPA1
Coefficients for authalic latitude.private double
aPA2
Coefficients for authalic latitude.private double
cosb1
Constant parameters.private double
dd
Constant parameters.private static double
EPSILON
Maximum difference allowed when comparing real numbers.private static double
EPSILON_LATITUDE
Epsilon for the comparison of latitudes.private static double
FINE_EPSILON
Epsilon for the comparison of small quantities.private double
latitudeOfOrigin
private LambertAzimuthalEqualArea.Mode
mode
The projection mode for this particular instance.private static double
P00
Constants for authalic latitude.private static double
P01
private static double
P02
private static double
P10
private static double
P11
private static double
P20
private double
qp
Constant parameters.private double
rq
Constant parameters.private double
sinb1
Constant parameters.private double
xmf
Constant parameters.private double
ymf
Constant parameters.
-
Constructor Summary
Constructors Constructor Description LambertAzimuthalEqualArea()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private double
authlat(double beta)
Determines latitude from authalic latitude.Bounds
getAlgorithmBounds()
Return the bounds where this projection is applicable.java.lang.String
getName()
Replies a human readable name of this projection.java.lang.String
getProj4Id()
Replies the Proj.4 identifier.void
initialize(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 double
qsfn(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:Proj
Replies 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:Proj
Replies 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:Proj
Initialize the projection using the provided parameters.- Specified by:
initialize
in interfaceProj
- Overrides:
initialize
in 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:Proj
Convert 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:Proj
Convert 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:Proj
Return 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
-
-