diff options
| author | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2020-04-03 08:06:26 +0000 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2020-04-03 08:06:26 +0000 |
| commit | 09a936a29c68dc66c2f92221d52d469ca8a98c1e (patch) | |
| tree | cee9a4725fbf0715cb7371e7c7076c9fa8a56508 /src | |
| parent | 5bb88a1d8c4ac71a4c702ab877e4bc7aa9dc261c (diff) | |
| download | PROJ-09a936a29c68dc66c2f92221d52d469ca8a98c1e.tar.gz PROJ-09a936a29c68dc66c2f92221d52d469ca8a98c1e.zip | |
Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base geographic CRS as 3D (fixes #2122)
Diffstat (limited to 'src')
| -rw-r--r-- | src/iso19111/io.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index d5d0d1c0..e358fc10 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -3773,6 +3773,12 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { ThrowNotExpectedCSType("Cartesian"); } + if (cartesianCS->axisList().size() == 3 && + baseGeodCRS->coordinateSystem()->axisList().size() == 2) { + baseGeodCRS = NN_NO_CHECK(util::nn_dynamic_pointer_cast<GeodeticCRS>( + baseGeodCRS->promoteTo3D(std::string(), dbContext_))); + } + addExtensionProj4ToProp(nodeP, props); return ProjectedCRS::create(props, baseGeodCRS, conversion, |
