aboutsummaryrefslogtreecommitdiff
path: root/src/projections/bonne.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/projections/bonne.cpp')
-rw-r--r--src/projections/bonne.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/projections/bonne.cpp b/src/projections/bonne.cpp
index 7817e968..1728a477 100644
--- a/src/projections/bonne.cpp
+++ b/src/projections/bonne.cpp
@@ -65,7 +65,7 @@ static PJ_LP bonne_s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, invers
rh = hypot(xy.x, xy.y);
lp.phi = Q->cphi1 + Q->phi1 - rh;
if (fabs(lp.phi) > M_HALFPI) {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return lp;
}
if (fabs(fabs(lp.phi) - M_HALFPI) <= EPS10)
@@ -91,7 +91,7 @@ static PJ_LP bonne_e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, invers
} else if (fabs(s - M_HALFPI) <= EPS10)
lp.lam = 0.;
else {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return lp;
}
return lp;
@@ -115,18 +115,21 @@ PJ *PROJECTION(bonne) {
double c;
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;
P->destructor = destructor;
Q->phi1 = pj_param(P->ctx, P->params, "rlat_1").f;
if (fabs(Q->phi1) < EPS10)
- return destructor (P, PJD_ERR_LAT1_IS_ZERO);
+ {
+ proj_log_error(P, _("Invalid value for lat_1: |lat_1| should be > 0"));
+ return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
if (P->es != 0.0) {
Q->en = pj_enfn(P->es);
if (nullptr==Q->en)
- return destructor(P, ENOMEM);
+ return destructor(P, PROJ_ERR_INVALID_OP /*ENOMEM*/);
Q->am1 = sin(Q->phi1);
c = cos(Q->phi1);
Q->m1 = pj_mlfn(Q->phi1, Q->am1, c, Q->en);