diff options
| -rw-r--r-- | src/iso19111/crs.cpp | 4 | ||||
| -rw-r--r-- | test/unit/test_crs.cpp | 3 |
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); } // --------------------------------------------------------------------------- |
