diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.am | 1 | ||||
| -rw-r--r-- | src/conversions/noop.cpp | 19 | ||||
| -rw-r--r-- | src/iso19111/c_api.cpp | 3 | ||||
| -rw-r--r-- | src/iso19111/io.cpp | 5 | ||||
| -rw-r--r-- | src/lib_proj.cmake | 1 | ||||
| -rw-r--r-- | src/pj_list.h | 1 |
6 files changed, 28 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index b62a11b0..9858d78f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -173,6 +173,7 @@ libproj_la_SOURCES = \ conversions/cart.cpp \ conversions/geoc.cpp \ conversions/geocent.cpp \ + conversions/noop.cpp \ conversions/unitconvert.cpp \ \ transformations/affine.cpp \ diff --git a/src/conversions/noop.cpp b/src/conversions/noop.cpp new file mode 100644 index 00000000..a5dd6023 --- /dev/null +++ b/src/conversions/noop.cpp @@ -0,0 +1,19 @@ +#define PJ_LIB__ + +#include "proj_internal.h" + +PROJ_HEAD(noop, "No operation"); + +static PJ_COORD noop(PJ_COORD coord, PJ *P) { + (void) P; + return coord; +} + +PJ *CONVERSION(noop, 0) { + P->fwd4d = noop; + P->inv4d = noop; + P->left = PJ_IO_UNITS_WHATEVER; + P->right = PJ_IO_UNITS_WHATEVER; + return P; +} + diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 1f4cecde..b15b8e34 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -134,8 +134,7 @@ static PJ *pj_obj_create(PJ_CONTEXT *ctx, const IdentifiedObjectNNPtr &objIn) { auto formatter = PROJStringFormatter::create( PROJStringFormatter::Convention::PROJ_5, dbContext); auto projString = coordop->exportToPROJString(formatter.get()); - auto pj = pj_create_internal( - ctx, projString.empty() ? "+proj=affine" : projString.c_str()); + auto pj = pj_create_internal(ctx, projString.c_str()); if (pj) { pj->iso_obj = objIn; return pj; diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 03fb6977..51fda1c1 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -5342,6 +5342,11 @@ const std::string &PROJStringFormatter::toString() const { } } } + + if (d->result_.empty()) { + d->appendToResult("+proj=noop"); + } + return d->result_; } diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 72a8cc59..38bc05d8 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -174,6 +174,7 @@ set(SRC_LIBPROJ_CONVERSIONS conversions/cart.cpp conversions/geoc.cpp conversions/geocent.cpp + conversions/noop.cpp conversions/unitconvert.cpp ) diff --git a/src/pj_list.h b/src/pj_list.h index 8ab4cdc0..0923bba8 100644 --- a/src/pj_list.h +++ b/src/pj_list.h @@ -106,6 +106,7 @@ PROJ_HEAD(nell_h, "Nell-Hammer") PROJ_HEAD(nicol, "Nicolosi Globular") PROJ_HEAD(nsper, "Near-sided perspective") PROJ_HEAD(nzmg, "New Zealand Map Grid") +PROJ_HEAD(noop, "No operation") PROJ_HEAD(ob_tran, "General Oblique Transformation") PROJ_HEAD(ocea, "Oblique Cylindrical Equal Area") PROJ_HEAD(oea, "Oblated Equal Area") |
