Skip to content

Commit

Permalink
Merge 82418d4 into a0dfcf2
Browse files Browse the repository at this point in the history
  • Loading branch information
rouault committed Mar 29, 2019
2 parents a0dfcf2 + 82418d4 commit 8f79bb2
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 14 deletions.
24 changes: 12 additions & 12 deletions src/conversions/unitconvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -473,11 +473,11 @@ PJ *CONVERSION(unitconvert,0) {
if (f != 0.0) {
proj_log_debug(P, "xy_in unit: %s", normalized_name);
} else {
if ( (f = pj_param (P->ctx, P->params, "dxy_in").f) == 0.0)
f = pj_param (P->ctx, P->params, "dxy_in").f;
if (f == 0.0 || 1.0 / f == 0.0)
return pj_default_destructor(P, PJD_ERR_UNKNOWN_UNIT_ID);
}
if (f != 0.0)
Q->xy_factor *= f;
Q->xy_factor = f;
if (normalized_name != nullptr && strcmp(normalized_name, "Radian") == 0)
P->left = PJ_IO_UNITS_RADIANS;
}
Expand All @@ -488,11 +488,11 @@ PJ *CONVERSION(unitconvert,0) {
if (f != 0.0) {
proj_log_debug(P, "xy_out unit: %s", normalized_name);
} else {
if ( (f = pj_param (P->ctx, P->params, "dxy_out").f) == 0.0)
f = pj_param (P->ctx, P->params, "dxy_out").f;
if (f == 0.0 || 1.0 / f == 0.0)
return pj_default_destructor(P, PJD_ERR_UNKNOWN_UNIT_ID);
}
if (f != 0.0)
Q->xy_factor /= f;
Q->xy_factor /= f;
if (normalized_name != nullptr && strcmp(normalized_name, "Radian") == 0)
P->right= PJ_IO_UNITS_RADIANS;
}
Expand All @@ -509,11 +509,11 @@ PJ *CONVERSION(unitconvert,0) {
if (f != 0.0) {
proj_log_debug(P, "z_in unit: %s", normalized_name);
} else {
if ( (f = pj_param (P->ctx, P->params, "dz_in").f) == 0.0)
f = pj_param (P->ctx, P->params, "dz_in").f;
if (f == 0.0 || 1.0 / f == 0.0)
return pj_default_destructor(P, PJD_ERR_UNKNOWN_UNIT_ID);
}
if (f != 0.0)
Q->z_factor *= f;
Q->z_factor = f;
}

if ((name = pj_param (P->ctx, P->params, "sz_out").s) != nullptr) {
Expand All @@ -522,11 +522,11 @@ PJ *CONVERSION(unitconvert,0) {
if (f != 0.0) {
proj_log_debug(P, "z_out unit: %s", normalized_name);
} else {
if ( (f = pj_param (P->ctx, P->params, "dz_out").f) == 0.0)
f = pj_param (P->ctx, P->params, "dz_out").f;
if (f == 0.0 || 1.0 / f == 0.0)
return pj_default_destructor(P, PJD_ERR_UNKNOWN_UNIT_ID);
}
if (f != 0.0)
Q->z_factor /= f;
Q->z_factor /= f;
}

if( z_in_is_linear >= 0 && z_out_is_linear >= 0 &&
Expand Down
4 changes: 4 additions & 0 deletions src/projections/tpeqd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ PJ *PROJECTION(tpeqd) {
Q->sc = Q->sp1 * Q->cp2;
Q->ccs = Q->cp1 * Q->cp2 * sin(Q->dlam2);
Q->z02 = aacos(P->ctx, Q->sp1 * Q->sp2 + Q->cp1 * Q->cp2 * cos (Q->dlam2));
if( Q->z02 == 0.0 ) {
// Actually happens when both lat_1 = lat_2 and [lat_1| = 90
return pj_default_destructor(P, PJD_ERR_LAT_1_OR_2_ZERO_OR_90);
}
Q->hz0 = .5 * Q->z02;
A12 = atan2(Q->cp2 * sin (Q->dlam2),
Q->cp1 * Q->sp2 - Q->sp1 * Q->cp2 * cos (Q->dlam2));
Expand Down
8 changes: 6 additions & 2 deletions test/gie/builtins.gie
Original file line number Diff line number Diff line change
Expand Up @@ -5243,7 +5243,7 @@ Two Point Equidistant
===============================================================================

-------------------------------------------------------------------------------
operation +proj=tpeqd +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
operation +proj=tpeqd +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
tolerance 0.18 mm
accept 2 1
Expand All @@ -5266,7 +5266,7 @@ accept -200 -100
expect 0.000898554 1.248203369

-------------------------------------------------------------------------------
operation +proj=tpeqd +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
operation +proj=tpeqd +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
tolerance 0.1 mm
accept 2 1
Expand All @@ -5288,6 +5288,10 @@ expect -0.000895485 1.248209507
accept -200 -100
expect 0.000895485 1.248209507

-------------------------------------------------------------------------------
operation +proj=tpeqd +a=6400000 +lat_1=90 +lat_2=90 +lon_1=0 +lon_2=1
-------------------------------------------------------------------------------
expect failure

===============================================================================
Tilted perspective
Expand Down
24 changes: 24 additions & 0 deletions test/gie/unitconvert.gie
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,28 @@ operation proj=unitconvert z_in=rad z_out=m
accept 1 1 1 1
expect failure

operation proj=unitconvert xy_in=0
expect failure

operation proj=unitconvert xy_out=0
expect failure

operation proj=unitconvert xy_in=1e400
expect failure

operation proj=unitconvert xy_out=1e400
expect failure

operation proj=unitconvert z_in=0
expect failure

operation proj=unitconvert z_out=0
expect failure

operation proj=unitconvert z_in=1e400
expect failure

operation proj=unitconvert z_out=1e400
expect failure

</gie>

0 comments on commit 8f79bb2

Please sign in to comment.