aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/coordinateoperation.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-05-15 11:58:17 +0200
committerGitHub <noreply@github.com>2020-05-15 11:58:17 +0200
commit330b2066244f77f89995a1aa195ef4323948a9b9 (patch)
tree9501bb3a670ce2a6ba8b8044ab256e5d8f28455d /src/iso19111/coordinateoperation.cpp
parent6c5164eb49bdb6fcc9bf976db33c1b0a4bf5d7ad (diff)
parenta2f8fd1a21da1352a39cc56db2bb39613fc29091 (diff)
downloadPROJ-330b2066244f77f89995a1aa195ef4323948a9b9.tar.gz
PROJ-330b2066244f77f89995a1aa195ef4323948a9b9.zip
Merge pull request #2224 from rouault/fix_2202
Make projinfo --3d --boundcrs-to-wgs84 better work (fixes #2202)
Diffstat (limited to 'src/iso19111/coordinateoperation.cpp')
-rw-r--r--src/iso19111/coordinateoperation.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index 3ffd208f..ad456860 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -6594,6 +6594,31 @@ TransformationNNPtr Transformation::shallowClone() const {
CoordinateOperationNNPtr Transformation::_shallowClone() const {
return util::nn_static_pointer_cast<CoordinateOperation>(shallowClone());
}
+
+// ---------------------------------------------------------------------------
+
+TransformationNNPtr
+Transformation::promoteTo3D(const std::string &,
+ const io::DatabaseContextPtr &dbContext) const {
+ auto transf = shallowClone();
+ transf->setCRSs(sourceCRS()->promoteTo3D(std::string(), dbContext),
+ targetCRS()->promoteTo3D(std::string(), dbContext),
+ interpolationCRS());
+ return transf;
+}
+
+// ---------------------------------------------------------------------------
+
+TransformationNNPtr
+Transformation::demoteTo2D(const std::string &,
+ const io::DatabaseContextPtr &dbContext) const {
+ auto transf = shallowClone();
+ transf->setCRSs(sourceCRS()->demoteTo2D(std::string(), dbContext),
+ targetCRS()->demoteTo2D(std::string(), dbContext),
+ interpolationCRS());
+ return transf;
+}
+
//! @endcond
// ---------------------------------------------------------------------------