diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-04-11 00:04:10 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-04-11 00:04:10 +0200 |
| commit | ea51372c7952b66fdf38657ee9afd30afac6ca05 (patch) | |
| tree | d3e6f77abf2139bcd19cd6970d8d156fc82352fa | |
| parent | 5f3fda7527bb3f41f1ac842d7dc6d7a6fa2f0529 (diff) | |
| download | PROJ-ea51372c7952b66fdf38657ee9afd30afac6ca05.tar.gz PROJ-ea51372c7952b66fdf38657ee9afd30afac6ca05.zip | |
createFromUserInput(): support URN:OGC:DEF:CRS:OGC:1.3:CRS84
| -rw-r--r-- | src/iso19111/io.cpp | 4 | ||||
| -rw-r--r-- | test/unit/test_io.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index bd29c310..d4b3dcb0 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -6626,9 +6626,9 @@ static BaseObjectNNPtr createFromUserInput(const std::string &text, }; // urn:ogc:def:crs:EPSG::4326 - if (tokens.size() == 7 && tokens[0] == "urn") { + if (tokens.size() == 7 && tolower(tokens[0]) == "urn") { - const auto &type = tokens[3]; + const auto type = tokens[3] == "CRS" ? "crs" : tokens[3]; const auto &authName = tokens[4]; const auto &code = tokens[6]; return createFromURNPart(type, authName, code); diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 780db16d..cd880a3f 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -10360,6 +10360,10 @@ TEST(io, createFromUserInput) { EXPECT_NO_THROW( createFromUserInput("urn:ogc:def:ellipsoid:EPSG::7030", dbContext)); + // Found as srsName in some GMLs... + EXPECT_NO_THROW( + createFromUserInput("URN:OGC:DEF:CRS:OGC:1.3:CRS84", dbContext)); + // Legacy formulations EXPECT_NO_THROW( createFromUserInput("urn:x-ogc:def:crs:EPSG::4326", dbContext)); |
