diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-08-13 18:06:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-13 18:06:22 +0200 |
| commit | b8c198897da30e59d41f7b9ccb66bc1b0079e5d8 (patch) | |
| tree | 043294bf305c46986a0fc3e268efda0c264455d0 /test/unit/test_io.cpp | |
| parent | 9701afb98c93fd575982265428af53849ee213b6 (diff) | |
| download | PROJ-b8c198897da30e59d41f7b9ccb66bc1b0079e5d8.tar.gz PROJ-b8c198897da30e59d41f7b9ccb66bc1b0079e5d8.zip | |
WKT importer: tune for Oracle WKT and 'Lambert Conformal Conic' (#2321)
Fixes https://github.com/qgis/QGIS/issues/37898
Diffstat (limited to 'test/unit/test_io.cpp')
| -rw-r--r-- | test/unit/test_io.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 433e3e6d..f2464e5c 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -5910,6 +5910,42 @@ TEST(wkt_parse, wkt1_esri_gauss_kruger) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt1_oracle) { + // WKT from mdsys.cs_srs Oracle table + auto wkt = "PROJCS[\"RGF93 / Lambert-93\", GEOGCS [ \"RGF93\", " + "DATUM [\"Reseau Geodesique Francais 1993 (EPSG ID 6171)\", " + "SPHEROID [\"GRS 1980 (EPSG ID 7019)\", 6378137.0, " + "298.257222101]], PRIMEM [ \"Greenwich\", 0.000000000 ], " + "UNIT [\"Decimal Degree\", 0.0174532925199433]], " + "PROJECTION [\"Lambert Conformal Conic\"], " + "PARAMETER [\"Latitude_Of_Origin\", 46.5], " + "PARAMETER [\"Central_Meridian\", 3.0], " + "PARAMETER [\"Standard_Parallel_1\", 49.0], " + "PARAMETER [\"Standard_Parallel_2\", 44.0], " + "PARAMETER [\"False_Easting\", 700000.0], " + "PARAMETER [\"False_Northing\", 6600000.0], " + "UNIT [\"Meter\", 1.0]]"; + + auto dbContext = DatabaseContext::create(); + auto obj = WKTParser().attachDatabaseContext(dbContext).createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj); + ASSERT_TRUE(crs != nullptr); + + EXPECT_EQ(crs->baseCRS()->datum()->nameStr(), + "Reseau Geodesique Francais 1993"); + EXPECT_EQ(crs->baseCRS()->datum()->getEPSGCode(), 6171); + EXPECT_EQ(crs->derivingConversion()->method()->nameStr(), + "Lambert Conic Conformal (2SP)"); + + auto factoryAll = AuthorityFactory::create(dbContext, std::string()); + auto res = crs->identify(factoryAll); + ASSERT_GE(res.size(), 1U); + EXPECT_EQ(res.front().first->getEPSGCode(), 2154); + EXPECT_EQ(res.front().second, 100); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, invalid) { EXPECT_THROW(WKTParser().createFromWKT(""), ParsingException); EXPECT_THROW(WKTParser().createFromWKT("A"), ParsingException); |
