diff options
Diffstat (limited to 'src/3rdparty/proj/PJ_lcc.c')
-rw-r--r-- | src/3rdparty/proj/PJ_lcc.c | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/src/3rdparty/proj/PJ_lcc.c b/src/3rdparty/proj/PJ_lcc.c deleted file mode 100644 index 80a85d0b..00000000 --- a/src/3rdparty/proj/PJ_lcc.c +++ /dev/null @@ -1,105 +0,0 @@ -#define PROJ_PARMS__ \ - double phi1; \ - double phi2; \ - double n; \ - double rho0; \ - double c; \ - int ellips; -#define PJ_LIB__ -#include <projects.h> -PROJ_HEAD(lcc, "Lambert Conformal Conic") - "\n\tConic, Sph&Ell\n\tlat_1= and lat_2= or lat_0"; -# define EPS10 1.e-10 -FORWARD(e_forward); /* ellipsoid & spheroid */ - double rho; - if (fabs(fabs(lp.phi) - HALFPI) < EPS10) { - if ((lp.phi * P->n) <= 0.) F_ERROR; - rho = 0.; - } - else - rho = P->c * (P->ellips ? pow(pj_tsfn(lp.phi, sin(lp.phi), - P->e), P->n) : pow(tan(FORTPI + .5 * lp.phi), -P->n)); - xy.x = P->k0 * (rho * sin( lp.lam *= P->n ) ); - xy.y = P->k0 * (P->rho0 - rho * cos(lp.lam) ); - return (xy); -} -INVERSE(e_inverse); /* ellipsoid & spheroid */ - double rho; - xy.x /= P->k0; - xy.y /= P->k0; - if( (rho = hypot(xy.x, xy.y = P->rho0 - xy.y)) != 0.0) { - if (P->n < 0.) { - rho = -rho; - xy.x = -xy.x; - xy.y = -xy.y; - } - if (P->ellips) { - if ((lp.phi = pj_phi2(pow(rho / P->c, 1./P->n), P->e)) - == HUGE_VAL) - I_ERROR; - } else - lp.phi = 2. * atan(pow(P->c / rho, 1./P->n)) - HALFPI; - lp.lam = atan2(xy.x, xy.y) / P->n; - } else { - lp.lam = 0.; - lp.phi = P->n > 0. ? HALFPI : - HALFPI; - } - return (lp); -} -SPECIAL(fac) { - double rho; - if (fabs(fabs(lp.phi) - HALFPI) < EPS10) { - if ((lp.phi * P->n) <= 0.) return; - rho = 0.; - } else - rho = P->c * (P->ellips ? pow(pj_tsfn(lp.phi, sin(lp.phi), - P->e), P->n) : pow(tan(FORTPI + .5 * lp.phi), -P->n)); - fac->code |= IS_ANAL_HK + IS_ANAL_CONV; - fac->k = fac->h = P->k0 * P->n * rho / - pj_msfn(sin(lp.phi), cos(lp.phi), P->es); - fac->conv = - P->n * lp.lam; -} -FREEUP; if (P) pj_dalloc(P); } -ENTRY0(lcc) - double cosphi, sinphi; - int secant; - - P->phi1 = pj_param(P->params, "rlat_1").f; - if (pj_param(P->params, "tlat_2").i) - P->phi2 = pj_param(P->params, "rlat_2").f; - else { - P->phi2 = P->phi1; - if (!pj_param(P->params, "tlat_0").i) - P->phi0 = P->phi1; - } - if (fabs(P->phi1 + P->phi2) < EPS10) E_ERROR(-21); - P->n = sinphi = sin(P->phi1); - cosphi = cos(P->phi1); - secant = fabs(P->phi1 - P->phi2) >= EPS10; - if( (P->ellips = (P->es != 0.)) ) { - double ml1, m1; - - P->e = sqrt(P->es); - m1 = pj_msfn(sinphi, cosphi, P->es); - ml1 = pj_tsfn(P->phi1, sinphi, P->e); - if (secant) { /* secant cone */ - P->n = log(m1 / - pj_msfn(sinphi = sin(P->phi2), cos(P->phi2), P->es)); - P->n /= log(ml1 / pj_tsfn(P->phi2, sinphi, P->e)); - } - P->c = (P->rho0 = m1 * pow(ml1, -P->n) / P->n); - P->rho0 *= (fabs(fabs(P->phi0) - HALFPI) < EPS10) ? 0. : - pow(pj_tsfn(P->phi0, sin(P->phi0), P->e), P->n); - } else { - if (secant) - P->n = log(cosphi / cos(P->phi2)) / - log(tan(FORTPI + .5 * P->phi2) / - tan(FORTPI + .5 * P->phi1)); - P->c = cosphi * pow(tan(FORTPI + .5 * P->phi1), P->n) / P->n; - P->rho0 = (fabs(fabs(P->phi0) - HALFPI) < EPS10) ? 0. : - P->c * pow(tan(FORTPI + .5 * P->phi0), -P->n); - } - P->inv = e_inverse; - P->fwd = e_forward; - P->spc = fac; -ENDENTRY(P) |