diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2007-12-06 13:16:18 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2007-12-06 13:16:18 +0000 |
| commit | 56938d961134e435372eed15f64fb5965953170d (patch) | |
| tree | d5c61c8b0902f3debdd23849ad27b9f599babc6b /src | |
| parent | 26704ef6a0f521408535980a4ca36ddb6bd125fc (diff) | |
| download | PROJ-56938d961134e435372eed15f64fb5965953170d.tar.gz PROJ-56938d961134e435372eed15f64fb5965953170d.zip | |
in the case of phi=90, the derived should be calculated at [90-delta,90]
instead of at [90,90+delta] (the same is true for -90) #1605.
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1415 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src')
| -rw-r--r-- | src/pj_factors.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/pj_factors.c b/src/pj_factors.c index 32021b89..1911a2ae 100644 --- a/src/pj_factors.c +++ b/src/pj_factors.c @@ -20,15 +20,16 @@ pj_factors(LP lp, PJ *P, double h, struct FACTORS *fac) { return 1; } else { /* proceed */ errno = pj_errno = 0; - if (fabs(t) <= EPS) /* adjust to pi/2 */ - lp.phi = lp.phi < 0. ? -HALFPI : HALFPI; + if (h < EPS) + h = DEFAULT_H; + if (fabs(lp.phi) > (HALFPI - h)) + /* adjust to value around pi/2 where derived still exists*/ + lp.phi = lp.phi < 0. ? (-HALFPI+h) : (HALFPI-h); else if (P->geoc) lp.phi = atan(P->rone_es * tan(lp.phi)); lp.lam -= P->lam0; /* compute del lp.lam */ if (!P->over) lp.lam = adjlon(lp.lam); /* adjust del longitude */ - if (h <= 0.) - h = DEFAULT_H; if (P->spc) /* get what projection analytic values */ P->spc(lp, P, fac); if (((fac->code & (IS_ANAL_XL_YL+IS_ANAL_XP_YP)) != |
