Class LambertConformalConic
- java.lang.Object
-
- org.openstreetmap.josm.data.projection.proj.AbstractProj
-
- org.openstreetmap.josm.data.projection.proj.LambertConformalConic
-
- All Implemented Interfaces:
Proj
public class LambertConformalConic extends AbstractProj
Lambert Conical Conformal Projection. Areas and shapes are deformed as one moves away from standard parallels. The angles are true in a limited area. This projection is used for the charts of North America, France and Belgium.This implementation provides transforms for two cases of the lambert conic conformal projection:
Lambert_Conformal_Conic_1SP
(EPSG code 9801)Lambert_Conformal_Conic_2SP
(EPSG code 9802)
For the 1SP case the latitude of origin is used as the standard parallel (SP). To use 1SP with a latitude of origin different from the SP, use the 2SP and set the SP1 to the single SP. The
References:"standard_parallel_2"
parameter is optional and will be given the same value as"standard_parallel_1"
if not set (creating a 1 standard parallel projection).- John P. Snyder (Map Projections - A Working Manual,
U.S. Geological Survey Professional Paper 1395, 1987) - "Coordinate Conversions and Transformations including Formulas",
EPSG Guidence Note Number 7, Version 19.
- Since:
- 13639 (align implementation with proj.4 / GeoTools), 4285 (reworked from Lambert / LambertCC9Zones), 2304 (initial implementation by Pieren)
- See Also:
- Lambert conformal conic projection on MathWorld, lambert_conic_conformal_1sp, lambert_conic_conformal_2sp
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LambertConformalConic.Parameters
Base class of Lambert Conformal Conic parameters.static class
LambertConformalConic.Parameters1SP
Parameters with a single standard parallel.static class
LambertConformalConic.Parameters2SP
Parameters with two standard parallels.
-
Field Summary
Fields Modifier and Type Field Description protected Ellipsoid
ellps
ellipsoidprotected static double
epsilon
precision in iterative schemaprotected double
f
projection factorprotected double
n
projection exponentprivate LambertConformalConic.Parameters
params
protected double
r0
radius of the parallel of latitude of the false origin (2SP) or at natural origin (1SP)
-
Constructor Summary
Constructors Constructor Description LambertConformalConic()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Bounds
getAlgorithmBounds()
Return the bounds where this projection is applicable.java.lang.String
getName()
Replies a human readable name of this projection.LambertConformalConic.Parameters
getParameters()
Returns projection parameters.java.lang.String
getProj4Id()
Replies the Proj.4 identifier.void
initialize(ProjParameters params)
Initialize the projection using the provided parameters.private void
initialize1SP(double lat0)
Initialize for LCC with 1 standard parallel.private void
initialize2SP(double lat0, double lat1, double lat2)
Initialize for LCC with 2 standard parallels.double[]
invproject(double east, double north)
Convert east/north to lat/lon.double[]
project(double phi, double lambda)
Convert lat/lon to east/north.-
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
-
params
private LambertConformalConic.Parameters params
-
n
protected double n
projection exponent
-
f
protected double f
projection factor
-
r0
protected double r0
radius of the parallel of latitude of the false origin (2SP) or at natural origin (1SP)
-
epsilon
protected static final double epsilon
precision in iterative schema- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LambertConformalConic
public LambertConformalConic()
-
-
Method Detail
-
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
-
initialize2SP
private void initialize2SP(double lat0, double lat1, double lat2)
Initialize for LCC with 2 standard parallels.- Parameters:
lat0
- latitude of false origin (in radians)lat1
- latitude of first standard parallel (in radians)lat2
- latitude of second standard parallel (in radians)
-
initialize1SP
private void initialize1SP(double lat0)
Initialize for LCC with 1 standard parallel.- Parameters:
lat0
- latitude of natural origin (in radians)
-
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
.
-
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 east, double north)
Description copied from interface:Proj
Convert east/north to lat/lon.- Parameters:
east
- east value in meters, divided by the semi major axis of the ellipsoidnorth
- north value in meters, divided by the semi major axis of the ellipsoid- Returns:
- array of length 2, containing lat and lon in radians.
-
getParameters
public final LambertConformalConic.Parameters getParameters()
Returns projection parameters.- Returns:
- projection parameters
-
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
-
-