From 925ae56c40b0cfa7d861f55e4332cb5603168a2c Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Sat, 11 Apr 2020 12:13:46 +0200 Subject: Add proj_degree_input() and proj_degree_output() Equivalent to proj_angular_input() and proj_angular_output() but checking for degree units instead. proj_create_crs_to_crs() rarely, if ever, returns pipelines that has radians as input or output so using proj_angular_*() is not a useful check for io units of pipelines. These two new functions should make life a bit easier for users that generally store there angular coordinates in radians. Closes #2027 --- src/conversions/unitconvert.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/conversions/unitconvert.cpp') diff --git a/src/conversions/unitconvert.cpp b/src/conversions/unitconvert.cpp index 609b30e0..172e2c48 100644 --- a/src/conversions/unitconvert.cpp +++ b/src/conversions/unitconvert.cpp @@ -476,8 +476,12 @@ PJ *CONVERSION(unitconvert,0) { return pj_default_destructor(P, PJD_ERR_UNKNOWN_UNIT_ID); } Q->xy_factor = f; - if (normalized_name != nullptr && strcmp(normalized_name, "Radian") == 0) - P->left = PJ_IO_UNITS_RADIANS; + if (normalized_name != nullptr) { + if (strcmp(normalized_name, "Radian") == 0) + P->left = PJ_IO_UNITS_RADIANS; + if (strcmp(normalized_name, "Degree") == 0) + P->left = PJ_IO_UNITS_DEGREES; + } } if ((name = pj_param (P->ctx, P->params, "sxy_out").s) != nullptr) { @@ -491,8 +495,12 @@ PJ *CONVERSION(unitconvert,0) { return pj_default_destructor(P, PJD_ERR_UNKNOWN_UNIT_ID); } Q->xy_factor /= f; - if (normalized_name != nullptr && strcmp(normalized_name, "Radian") == 0) - P->right= PJ_IO_UNITS_RADIANS; + if (normalized_name != nullptr) { + if (strcmp(normalized_name, "Radian") == 0) + P->right= PJ_IO_UNITS_RADIANS; + if (strcmp(normalized_name, "Degree") == 0) + P->right= PJ_IO_UNITS_DEGREES; + } } if( xy_in_is_linear >= 0 && xy_out_is_linear >= 0 && -- cgit v1.2.3