aboutsummaryrefslogtreecommitdiff
path: root/src/conversions
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2019-01-04 19:13:01 +0100
committerGitHub <noreply@github.com>2019-01-04 19:13:01 +0100
commit3ea468222fdabdae3aa5b47439d6b3bfb0a93c8e (patch)
tree7a8bc721676f8df2c3a7e7cdf05387300e03584b /src/conversions
parentd89a6ab2f3f26d1451971369b0ccfc4eb322729d (diff)
parentedb068401822c0cb7047019ae7a1dac587778ce3 (diff)
downloadPROJ-3ea468222fdabdae3aa5b47439d6b3bfb0a93c8e.tar.gz
PROJ-3ea468222fdabdae3aa5b47439d6b3bfb0a93c8e.zip
Merge pull request #1205 from kbevers/master
Better handling of pipelines including step with PJ_IO_UNITS_WHATEVER operations
Diffstat (limited to 'src/conversions')
-rw-r--r--src/conversions/axisswap.cpp4
-rw-r--r--src/conversions/cart.cpp2
-rw-r--r--src/conversions/geoc.cpp4
-rw-r--r--src/conversions/geocent.cpp2
-rw-r--r--src/conversions/unitconvert.cpp6
5 files changed, 12 insertions, 6 deletions
diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp
index 18d13f8c..97c8899a 100644
--- a/src/conversions/axisswap.cpp
+++ b/src/conversions/axisswap.cpp
@@ -282,8 +282,8 @@ PJ *CONVERSION(axisswap,0) {
}
if (pj_param(P->ctx, P->params, "tangularunits").i) {
- P->left = PJ_IO_UNITS_ANGULAR;
- P->right = PJ_IO_UNITS_ANGULAR;
+ P->left = PJ_IO_UNITS_RADIANS;
+ P->right = PJ_IO_UNITS_RADIANS;
} else {
P->left = PJ_IO_UNITS_WHATEVER;
P->right = PJ_IO_UNITS_WHATEVER;
diff --git a/src/conversions/cart.cpp b/src/conversions/cart.cpp
index f8ec256b..d9aea9b8 100644
--- a/src/conversions/cart.cpp
+++ b/src/conversions/cart.cpp
@@ -213,7 +213,7 @@ PJ *CONVERSION(cart,1) {
P->inv3d = geodetic;
P->fwd = cart_forward;
P->inv = cart_reverse;
- P->left = PJ_IO_UNITS_ANGULAR;
+ P->left = PJ_IO_UNITS_RADIANS;
P->right = PJ_IO_UNITS_CARTESIAN;
return P;
}
diff --git a/src/conversions/geoc.cpp b/src/conversions/geoc.cpp
index 66ca6199..e0ca3df3 100644
--- a/src/conversions/geoc.cpp
+++ b/src/conversions/geoc.cpp
@@ -51,8 +51,8 @@ static PJ *CONVERSION(geoc, 1) {
P->inv4d = inverse;
P->fwd4d = forward;
- P->left = PJ_IO_UNITS_ANGULAR;
- P->right = PJ_IO_UNITS_ANGULAR;
+ P->left = PJ_IO_UNITS_RADIANS;
+ P->right = PJ_IO_UNITS_RADIANS;
P->is_latlong = 1;
return P;
diff --git a/src/conversions/geocent.cpp b/src/conversions/geocent.cpp
index c8d2d486..31f1a30b 100644
--- a/src/conversions/geocent.cpp
+++ b/src/conversions/geocent.cpp
@@ -56,7 +56,7 @@ PJ *CONVERSION (geocent, 0) {
P->y0 = 0.0;
P->inv = inverse;
P->fwd = forward;
- P->left = PJ_IO_UNITS_ANGULAR;
+ P->left = PJ_IO_UNITS_RADIANS;
P->right = PJ_IO_UNITS_CARTESIAN;
return P;
diff --git a/src/conversions/unitconvert.cpp b/src/conversions/unitconvert.cpp
index cbd81a7d..1e3372d6 100644
--- a/src/conversions/unitconvert.cpp
+++ b/src/conversions/unitconvert.cpp
@@ -457,6 +457,8 @@ PJ *CONVERSION(unitconvert,0) {
P->left = PJ_IO_UNITS_WHATEVER;
P->right = PJ_IO_UNITS_WHATEVER;
+ P->skip_fwd_prepare = 1;
+ P->skip_inv_prepare = 1;
/* if no time input/output unit is specified we can skip them */
Q->t_in_id = -1;
@@ -476,6 +478,8 @@ PJ *CONVERSION(unitconvert,0) {
}
if (f != 0.0)
Q->xy_factor *= f;
+ if (normalized_name != nullptr && strcmp(normalized_name, "Radian") == 0)
+ P->left = PJ_IO_UNITS_RADIANS;
}
if ((name = pj_param (P->ctx, P->params, "sxy_out").s) != nullptr) {
@@ -489,6 +493,8 @@ PJ *CONVERSION(unitconvert,0) {
}
if (f != 0.0)
Q->xy_factor /= f;
+ if (normalized_name != nullptr && strcmp(normalized_name, "Radian") == 0)
+ P->right= PJ_IO_UNITS_RADIANS;
}
if( xy_in_is_linear >= 0 && xy_out_is_linear >= 0 &&