diff options
| author | Martin Raspaud <martin.raspaud@smhi.se> | 2015-09-09 22:02:51 +0200 |
|---|---|---|
| committer | Martin Raspaud <martin.raspaud@smhi.se> | 2015-09-09 22:02:51 +0200 |
| commit | 8357c216ee8eda459fb2e2c1f987b15d5a84b6c6 (patch) | |
| tree | 34bb680a174e4b9f522dad703f00a851bccc641f | |
| parent | 38d4c6d3a946f041ae6c4e25b96cd4c04d9db13f (diff) | |
| download | PROJ-8357c216ee8eda459fb2e2c1f987b15d5a84b6c6.tar.gz PROJ-8357c216ee8eda459fb2e2c1f987b15d5a84b6c6.zip | |
Don't return values when doing inverse projections outside of the mollweide map.
Signed-off-by: Martin Raspaud <martin.raspaud@smhi.se>
| -rw-r--r-- | src/PJ_moll.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/PJ_moll.c b/src/PJ_moll.c index 98f0457d..cf9369dc 100644 --- a/src/PJ_moll.c +++ b/src/PJ_moll.c @@ -29,8 +29,12 @@ FORWARD(s_forward); /* spheroid */ INVERSE(s_inverse); /* spheroid */ lp.phi = aasin(P->ctx, xy.y / P->C_y); lp.lam = xy.x / (P->C_x * cos(lp.phi)); - lp.phi += lp.phi; - lp.phi = aasin(P->ctx, (lp.phi + sin(lp.phi)) / P->C_p); + if (fabs(lp.lam) < PI) { + lp.phi += lp.phi; + lp.phi = aasin(P->ctx, (lp.phi + sin(lp.phi)) / P->C_p); + } else { + lp.lam = lp.phi = HUGE_VAL; + } return (lp); } FREEUP; if (P) pj_dalloc(P); } |
