diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-03-06 14:11:31 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-03-06 14:11:31 +0100 |
| commit | 6512ef2427ed6b303ae1c03b91907020cb5366d8 (patch) | |
| tree | 2d6f318b8f1700ebcb35dbfd7791c038d7b2a212 /test/unit/test_io.cpp | |
| parent | 2dbca196a0c73972a0cc70856a42f01765868145 (diff) | |
| download | PROJ-6512ef2427ed6b303ae1c03b91907020cb5366d8.tar.gz PROJ-6512ef2427ed6b303ae1c03b91907020cb5366d8.zip | |
WKT import/export: add support for WKT1_ESRI VERTCS syntax
Diffstat (limited to 'test/unit/test_io.cpp')
| -rw-r--r-- | test/unit/test_io.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 581083b3..767c39e9 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -2061,6 +2061,45 @@ TEST(wkt_parse, vertcrs_WKT1_GDAL_minimum) { // --------------------------------------------------------------------------- +TEST(wkt_parse, VERTCS_WKT1_ESRI) { + auto wkt = "VERTCS[\"EGM2008_Geoid\",VDATUM[\"EGM2008_Geoid\"]," + "PARAMETER[\"Vertical_Shift\",0.0]," + "PARAMETER[\"Direction\",1.0],UNIT[\"Meter\",1.0]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast<VerticalCRS>(obj); + ASSERT_TRUE(crs != nullptr); + EXPECT_EQ(crs->nameStr(), "EGM2008_Geoid"); + + auto datum = crs->datum(); + EXPECT_EQ(datum->nameStr(), "EGM2008_Geoid"); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 1U); + EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::UP); + + EXPECT_EQ(WKTParser().guessDialect(wkt), + WKTParser::WKTGuessedDialect::WKT1_ESRI); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_parse, VERTCS_WKT1_ESRI_down) { + auto wkt = "VERTCS[\"Caspian\",VDATUM[\"Caspian_Sea\"]," + "PARAMETER[\"Vertical_Shift\",0.0]," + "PARAMETER[\"Direction\",-1.0],UNIT[\"Meter\",1.0]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast<VerticalCRS>(obj); + ASSERT_TRUE(crs != nullptr); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 1U); + EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::DOWN); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, vertcrs_WKT1_LAS_ftUS) { auto wkt = "VERT_CS[\"NAVD88 - Geoid03 (Feet)\"," " VERT_DATUM[\"unknown\",2005]," |
