diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-10-06 19:21:03 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-10-06 19:21:03 +0200 |
| commit | 3a67ea87fac5b835df7966fa801881eaf7503e78 (patch) | |
| tree | f3535b3d4ab1dc5dc5202f0901cf3115a7196fa2 /test/unit | |
| parent | a92526a4ba60abc9c8909e5fa098b4102a44dc7e (diff) | |
| download | PROJ-3a67ea87fac5b835df7966fa801881eaf7503e78.tar.gz PROJ-3a67ea87fac5b835df7966fa801881eaf7503e78.zip | |
ProjectedCRS::_isEquivalentTo(): ignore base CRS axis order even in EQUIVALENT mode if one of them is lacking an explicit CS order (refs #2886)
Diffstat (limited to 'test/unit')
| -rw-r--r-- | test/unit/test_crs.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/unit/test_crs.cpp b/test/unit/test_crs.cpp index bc42d834..a1838896 100644 --- a/test/unit/test_crs.cpp +++ b/test/unit/test_crs.cpp @@ -6707,3 +6707,23 @@ TEST(crs, projected_alterParametersLinearUnit_do_not_mess_deriving_conversion) { } EXPECT_EQ(projCRS->derivingConversion()->targetCRS().get(), projCRS.get()); } + +// --------------------------------------------------------------------------- + +TEST(crs, projected_is_equivalent_to_with_proj4_extension) { + const auto obj1 = PROJStringParser().createFromPROJString( + "+proj=omerc +lat_0=50 +alpha=50.0 +no_rot +a=6378144.0 +b=6356759.0 " + "+lon_0=8.0 +type=crs"); + const auto crs1 = nn_dynamic_pointer_cast<ProjectedCRS>(obj1); + ASSERT_TRUE(crs1 != nullptr); + + const auto wkt = crs1->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()); + const auto obj_from_wkt = WKTParser().createFromWKT(wkt); + const auto crs_from_wkt = + nn_dynamic_pointer_cast<ProjectedCRS>(obj_from_wkt); + + // Check equivalence of the CRS from PROJ.4 and WKT + EXPECT_TRUE(crs1->isEquivalentTo(crs_from_wkt.get(), + IComparable::Criterion::EQUIVALENT)); +} |
