public abstract class AbstractProj extends java.lang.Object implements Proj
Modifier and Type | Field and Description |
---|---|
private static double |
C00
|
private static double |
C02 |
private static double |
C04 |
private static double |
C06 |
private static double |
C08 |
private static double |
C22 |
private static double |
C44 |
private static double |
C46 |
private static double |
C48 |
private static double |
C66 |
private static double |
C68 |
private static double |
C88 |
protected double |
e
Ellipsoid excentricity, equals to
sqrt( . |
protected double |
e2
The square of excentricity: e² = (a²-b²)/a² where
e is the excentricity,
a is the semi major axis length and
b is the semi minor axis length.
|
protected double |
en0
Constant needed for the
mlfn method. |
protected double |
en1
Constant needed for the
mlfn method. |
protected double |
en2
Constant needed for the
mlfn method. |
protected double |
en3
Constant needed for the
mlfn method. |
protected double |
en4
Constant needed for the
mlfn method. |
private static double |
ITERATION_TOLERANCE
Difference allowed in iterative computations.
|
private static int |
MAXIMUM_ITERATIONS
Maximum number of iterations for iterative computations.
|
private static double |
MLFN_TOL
Relative iteration precision used in the
mlfn method |
protected boolean |
spherical
is ellipsoid spherical?
|
Constructor and Description |
---|
AbstractProj() |
Modifier and Type | Method and Description |
---|---|
protected double |
aasin(double v)
Tolerant asin that will just return the limits of its output range if the input is out of range
|
(package private) double |
cphi2(double ts) |
void |
initialize(ProjParameters params)
Initialize the projection using the provided parameters.
|
protected double |
invMlfn(double arg)
Calculates the latitude (
phi ) from a meridian distance. |
boolean |
isGeographic()
Return true, if a geographic coordinate reference system is represented.
|
protected double |
mlfn(double phi,
double sphi,
double cphi)
Calculates the meridian distance.
|
(package private) double |
msfn(double s,
double c)
Computes function
f(s,c,e²) = c/sqrt(1 - s²×e²) needed for the true scale
latitude (Snyder 14-15), where s and c are the sine and cosine of
the true scale latitude, and e² is the eccentricity squared. |
(package private) double |
tsfn(double lat,
double sinlat)
Computes function (15-9) and (9-13) from Snyder.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAlgorithmBounds, getName, getProj4Id, invproject, lonIsLinearToEast, project
private static final int MAXIMUM_ITERATIONS
private static final double ITERATION_TOLERANCE
private static final double MLFN_TOL
mlfn
methodprivate static final double C00
private static final double C02
private static final double C04
private static final double C06
private static final double C08
private static final double C22
private static final double C44
private static final double C46
private static final double C48
private static final double C66
private static final double C68
private static final double C88
protected double en0
mlfn
method.
Setup at construction time.protected double en1
mlfn
method.
Setup at construction time.protected double en2
mlfn
method.
Setup at construction time.protected double en3
mlfn
method.
Setup at construction time.protected double en4
mlfn
method.
Setup at construction time.protected double e
sqrt(excentricity squared
)
.
Value 0 means that the ellipsoid is spherical.e2
protected double e2
e
protected boolean spherical
Ellipsoid.spherical
public AbstractProj()
public void initialize(ProjParameters params) throws ProjectionConfigurationException
Proj
initialize
in interface Proj
params
- The projection parametersProjectionConfigurationException
- in case parameters are not suitablepublic boolean isGeographic()
Proj
isGeographic
in interface Proj
protected final double mlfn(double phi, double sphi, double cphi)
phi
. Accurate to < 1e-5 meters
when used in conjunction with typical major axis values.phi
- latitude to calculate meridian distance for.sphi
- sin(phi).cphi
- cos(phi).protected final double invMlfn(double arg)
phi
) from a meridian distance.
Determines phi to TOL (1e-11) radians, about 1e-6 seconds.arg
- meridian distance to calculate latitude for.java.lang.RuntimeException
- if the itteration does not converge.protected final double aasin(double v)
v
- the value whose arc sine is to be returned.final double cphi2(double ts)
final double msfn(double s, double c)
f(s,c,e²) = c/sqrt(1 - s²×e²)
needed for the true scale
latitude (Snyder 14-15), where s and c are the sine and cosine of
the true scale latitude, and e² is the eccentricity squared.s
- sine of the true scale latitudec
- cosine of the true scale latitudec/sqrt(1 - s²×e²)
final double tsfn(double lat, double sinlat)
lat
- the latitudesinlat
- sine of the latitudelat
and sinlat