aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/iso19111/crs.cpp4
-rw-r--r--test/unit/test_crs.cpp3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp
index a12c6aa0..7c42c18c 100644
--- a/src/iso19111/crs.cpp
+++ b/src/iso19111/crs.cpp
@@ -201,6 +201,10 @@ const GeodeticCRS *CRS::extractGeodeticCRSRaw() const {
if (boundCRS) {
return boundCRS->baseCRS()->extractGeodeticCRSRaw();
}
+ auto derivedProjectedCRS = dynamic_cast<const DerivedProjectedCRS *>(this);
+ if (derivedProjectedCRS) {
+ return derivedProjectedCRS->baseCRS()->extractGeodeticCRSRaw();
+ }
return nullptr;
}
//! @endcond
diff --git a/test/unit/test_crs.cpp b/test/unit/test_crs.cpp
index 42e6018b..f7c82b5e 100644
--- a/test/unit/test_crs.cpp
+++ b/test/unit/test_crs.cpp
@@ -5401,6 +5401,9 @@ TEST(crs, derivedProjectedCRS_WKT2_2019) {
EXPECT_TRUE(crs->isEquivalentTo(crs.get()));
EXPECT_TRUE(crs->shallowClone()->isEquivalentTo(crs.get()));
EXPECT_FALSE(crs->isEquivalentTo(createUnrelatedObject().get()));
+
+ auto geodCRS = crs->extractGeodeticCRS();
+ EXPECT_TRUE(geodCRS != nullptr);
}
// ---------------------------------------------------------------------------