diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-04-22 22:51:31 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-04-23 01:07:04 +0200 |
| commit | f6abb7d75c647013dd83a82361b96c202e615d90 (patch) | |
| tree | 6743cf5b5feab06004e85ff55f654cd1671a6dc9 /test/unit/test_factory.cpp | |
| parent | c6dba3fffb80fe6394f51aae0762f7e5db6d9edf (diff) | |
| download | PROJ-f6abb7d75c647013dd83a82361b96c202e615d90.tar.gz PROJ-f6abb7d75c647013dd83a82361b96c202e615d90.zip | |
Database: update to EPSG v10.019
Non-trivial updates:
- some vertical CRS are now encoded as DerivedVerticalCRS. e.g EPSG:8228
"NAVD88 height (ft)", with base EPSG:5703 "NAVD88 height". As we don't
have support in our PROJ db model for DerivedVerticalCRS, modify the
import script to 'resolve' the derivation up to the original datum.
- Method EPSG:1069 'Change of Vertical Unit' is no longer used. It is
replaced by a generic-purpose EPSG:1104 method that doesn't take any
conversion factor. And generic conversions EPSG:7812 and EPSG:7813 are
now used in concatenated operations, which require code changes as
well.
Diffstat (limited to 'test/unit/test_factory.cpp')
| -rw-r--r-- | test/unit/test_factory.cpp | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 02033a8a..c10c4697 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -1261,7 +1261,7 @@ TEST( auto operations = concatenated->operations(); ASSERT_EQ(operations.size(), 2U); EXPECT_TRUE(operations[0]->isEquivalentTo( - factory->createCoordinateOperation("7972", false).get())); + factory->createCoordinateOperation("7813", false).get())); EXPECT_TRUE(operations[1]->isEquivalentTo( factory->createCoordinateOperation("7969", false).get())); } @@ -1270,6 +1270,42 @@ TEST( TEST( factory, + AuthorityFactory_createCoordinateOperation_concatenated_operation_step_2_and_3_are_conversion) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto op = factory->createCoordinateOperation("7987", false); + auto concatenated = nn_dynamic_pointer_cast<ConcatenatedOperation>(op); + ASSERT_TRUE(concatenated != nullptr); + auto operations = concatenated->operations(); + ASSERT_EQ(operations.size(), 3U); + EXPECT_TRUE(operations[0]->isEquivalentTo( + factory->createCoordinateOperation("7980", false).get())); + EXPECT_TRUE(operations[1]->isEquivalentTo( + factory->createCoordinateOperation("7812", false).get())); + EXPECT_TRUE(operations[2]->isEquivalentTo( + factory->createCoordinateOperation("7813", false).get())); + + EXPECT_EQ(operations[1]->targetCRS()->nameStr(), "KOC WD depth"); + EXPECT_EQ(operations[2]->sourceCRS()->nameStr(), + operations[1]->targetCRS()->nameStr()); + EXPECT_EQ( + concatenated->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=geogoffset +dh=-4.74 " + "+step +proj=axisswap +order=1,2,-3 " + "+step +proj=unitconvert +z_in=m +z_out=ft"); + + EXPECT_EQ(concatenated->inverse()->exportToPROJString( + PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=unitconvert +z_in=ft +z_out=m " + "+step +proj=axisswap +order=1,2,-3 " + "+step +proj=geogoffset +dh=4.74"); +} + +// --------------------------------------------------------------------------- + +TEST( + factory, AuthorityFactory_createCoordinateOperation_concatenated_operation_epsg_9103) { auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); auto op = factory->createCoordinateOperation("9103", false); |
