aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHoward Butler <howard@hobu.co>2015-09-10 08:46:37 -0500
committerHoward Butler <howard@hobu.co>2015-09-10 08:46:37 -0500
commit4bacfd1c782ac10c289c7005443069176bcf6349 (patch)
treeb54ec3950c50bedb88369eaa5ff4d64963c46d26 /src
parentce447849f2627e15d800a881103948247696c382 (diff)
parent8357c216ee8eda459fb2e2c1f987b15d5a84b6c6 (diff)
downloadPROJ-4bacfd1c782ac10c289c7005443069176bcf6349.tar.gz
PROJ-4bacfd1c782ac10c289c7005443069176bcf6349.zip
Merge pull request #304 from mraspaud/master
Don't return values when doing inverse projections outside of the mollweide map
Diffstat (limited to 'src')
-rw-r--r--src/PJ_moll.c8
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); }