aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-05-14 17:04:26 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-05-14 18:55:41 +0200
commit69ee50ca36316dd5429b212e7217def4e9ee1dcc (patch)
treec86b225f69fa39cff10255ebc3330388707cef62 /src
parent70424a9a17dbfae28dac287831a06f3aee8d2725 (diff)
downloadPROJ-69ee50ca36316dd5429b212e7217def4e9ee1dcc.tar.gz
PROJ-69ee50ca36316dd5429b212e7217def4e9ee1dcc.zip
Grid listing from a CoordinateOperation: take into account several grid names separated by comma (e.g. '+grids=foo1.gtx,foo2.gtx')
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/coordinateoperation.cpp20
-rw-r--r--src/iso19111/io.cpp5
2 files changed, 16 insertions, 9 deletions
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index 0f5e4c4d..6e62dbb5 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -2043,15 +2043,19 @@ SingleOperation::gridsNeeded(const io::DatabaseContextPtr &databaseContext,
if (opParamvalue) {
const auto &value = opParamvalue->parameterValue();
if (value->type() == ParameterValue::Type::FILENAME) {
- GridDescription desc;
- desc.shortName = value->valueFile();
- if (databaseContext) {
- databaseContext->lookForGridInfo(
- desc.shortName, considerKnownGridsAsAvailable,
- desc.fullName, desc.packageName, desc.url,
- desc.directDownload, desc.openLicense, desc.available);
+ const auto gridNames = split(value->valueFile(), ",");
+ for (const auto &gridName : gridNames) {
+ GridDescription desc;
+ desc.shortName = gridName;
+ if (databaseContext) {
+ databaseContext->lookForGridInfo(
+ desc.shortName, considerKnownGridsAsAvailable,
+ desc.fullName, desc.packageName, desc.url,
+ desc.directDownload, desc.openLicense,
+ desc.available);
+ }
+ res.insert(desc);
}
- res.insert(desc);
}
}
}
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index af957ada..9d9fa4a3 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -7630,7 +7630,10 @@ std::set<std::string> PROJStringFormatter::getUsedGridNames() const {
for (const auto &step : d->steps_) {
for (const auto &param : step.paramValues) {
if (param.keyEquals("grids")) {
- res.insert(param.value);
+ const auto gridNames = split(param.value, ",");
+ for (const auto &gridName : gridNames) {
+ res.insert(gridName);
+ }
}
}
}