diff options
Diffstat (limited to 'src/projections/PJ_eck1.cpp')
| -rw-r--r-- | src/projections/PJ_eck1.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/projections/PJ_eck1.cpp b/src/projections/PJ_eck1.cpp new file mode 100644 index 00000000..88a7430c --- /dev/null +++ b/src/projections/PJ_eck1.cpp @@ -0,0 +1,41 @@ +#define PJ_LIB__ +#include <math.h> + +#include "projects.h" + +PROJ_HEAD(eck1, "Eckert I") "\n\tPCyl, Sph"; +#define FC 0.92131773192356127802 +#define RP 0.31830988618379067154 + + +static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ + XY xy = {0.0,0.0}; + (void) P; + + xy.x = FC * lp.lam * (1. - RP * fabs(lp.phi)); + xy.y = FC * lp.phi; + + return xy; +} + + +static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ + LP lp = {0.0,0.0}; + (void) P; + + lp.phi = xy.y / FC; + lp.lam = xy.x / (FC * (1. - RP * fabs(lp.phi))); + + return (lp); +} + + + +PJ *PROJECTION(eck1) { + P->es = 0.0; + P->inv = s_inverse; + P->fwd = s_forward; + + return P +; +} |
