aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/io.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2022-02-14 20:40:25 +0100
committerGitHub <noreply@github.com>2022-02-14 20:40:25 +0100
commitd4deb549982a16c0b7b324739af781d2779f2324 (patch)
tree0ac30dd48e217392fcf1b3937e025adaa81b9730 /src/iso19111/io.cpp
parentf67c82912fde55a58d565697263306c840b3efd4 (diff)
parentdf9e2fe519d97139a8264057d96b034788e8e8e7 (diff)
downloadPROJ-d4deb549982a16c0b7b324739af781d2779f2324.tar.gz
PROJ-d4deb549982a16c0b7b324739af781d2779f2324.zip
Merge pull request #3055 from rouault/over_fix
Better deal with importing strings like '+init=epsg:XXXX +over' (refs MapServer/MapServer#6478)
Diffstat (limited to 'src/iso19111/io.cpp')
-rw-r--r--src/iso19111/io.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index a7fedb91..f047ef3e 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -10489,9 +10489,12 @@ PROJStringParser::createFromPROJString(const std::string &projString) {
auto crs = dynamic_cast<CRS *>(obj.get());
bool hasSignificantParamValues = false;
+ bool hasOver = false;
for (const auto &kv : d->steps_[0].paramValues) {
- if (!((kv.key == "type" && kv.value == "crs") ||
- kv.key == "wktext" || kv.key == "no_defs")) {
+ if (kv.key == "over") {
+ hasOver = true;
+ } else if (!((kv.key == "type" && kv.value == "crs") ||
+ kv.key == "wktext" || kv.key == "no_defs")) {
hasSignificantParamValues = true;
break;
}
@@ -10502,6 +10505,9 @@ PROJStringParser::createFromPROJString(const std::string &projString) {
properties.set(IdentifiedObject::NAME_KEY,
d->title_.empty() ? crs->nameStr()
: d->title_);
+ if (hasOver) {
+ properties.set("OVER", true);
+ }
const auto &extent = getExtent(crs);
if (extent) {
properties.set(