aboutsummaryrefslogtreecommitdiff
path: root/src/projections/hammer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/projections/hammer.cpp')
-rw-r--r--src/projections/hammer.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/projections/hammer.cpp b/src/projections/hammer.cpp
index d9bcafc7..5a183082 100644
--- a/src/projections/hammer.cpp
+++ b/src/projections/hammer.cpp
@@ -28,7 +28,7 @@ static PJ_XY hammer_s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forwa
lp.lam *= Q->w;
double denom = 1. + cosphi * cos(lp.lam);
if( denom == 0.0 ) {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return proj_coord_error().xy;
}
d = sqrt(2./denom);
@@ -47,7 +47,7 @@ static PJ_LP hammer_s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inver
if (fabs(2.*z*z-1.) < EPS) {
lp.lam = HUGE_VAL;
lp.phi = HUGE_VAL;
- proj_errno_set(P, PJD_ERR_LAT_OR_LON_EXCEED_LIMIT);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
} else {
lp.lam = aatan2(Q->w * xy.x * z,2. * z * z - 1)/Q->w;
lp.phi = aasin(P->ctx,z * xy.y);
@@ -59,19 +59,25 @@ static PJ_LP hammer_s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inver
PJ *PROJECTION(hammer) {
struct pj_opaque *Q = static_cast<struct pj_opaque*>(calloc (1, sizeof (struct pj_opaque)));
if (nullptr==Q)
- return pj_default_destructor (P, ENOMEM);
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP /*ENOMEM*/);
P->opaque = Q;
if (pj_param(P->ctx, P->params, "tW").i) {
Q->w = fabs(pj_param(P->ctx, P->params, "dW").f);
if (Q->w <= 0.)
- return pj_default_destructor (P, PJD_ERR_W_OR_M_ZERO_OR_LESS);
+ {
+ proj_log_error(P, _("Invalid value for W: it should be > 0"));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
} else
Q->w = .5;
if (pj_param(P->ctx, P->params, "tM").i) {
Q->m = fabs(pj_param(P->ctx, P->params, "dM").f);
if (Q->m <= 0.)
- return pj_default_destructor (P, PJD_ERR_W_OR_M_ZERO_OR_LESS);
+ {
+ proj_log_error(P, _("Invalid value for M: it should be > 0"));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
} else
Q->m = 1.;