aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2019-04-02 09:59:37 +0200
committerGitHub <noreply@github.com>2019-04-02 09:59:37 +0200
commitb8a62522b0eca6b4b806471cdff984a28ea1c8fe (patch)
tree57fa6179be8677826ac4c5ca31e6f4760245345d /src
parentf2842ae44c6294b096f8629bd65e0223f0aa145e (diff)
parent47dd4dbc40cbba140f4ceb775ea5d5d628fba961 (diff)
downloadPROJ-b8a62522b0eca6b4b806471cdff984a28ea1c8fe.tar.gz
PROJ-b8a62522b0eca6b4b806471cdff984a28ea1c8fe.zip
Merge pull request #1391 from kbevers/noop
Add no-op operation. It does nothing.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am1
-rw-r--r--src/conversions/noop.cpp19
-rw-r--r--src/iso19111/c_api.cpp3
-rw-r--r--src/iso19111/io.cpp5
-rw-r--r--src/lib_proj.cmake1
-rw-r--r--src/pj_list.h1
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")