diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-05-14 17:04:26 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-05-14 18:55:41 +0200 |
| commit | 69ee50ca36316dd5429b212e7217def4e9ee1dcc (patch) | |
| tree | c86b225f69fa39cff10255ebc3330388707cef62 /src | |
| parent | 70424a9a17dbfae28dac287831a06f3aee8d2725 (diff) | |
| download | PROJ-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.cpp | 20 | ||||
| -rw-r--r-- | src/iso19111/io.cpp | 5 |
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 ¶m : step.paramValues) { if (param.keyEquals("grids")) { - res.insert(param.value); + const auto gridNames = split(param.value, ","); + for (const auto &gridName : gridNames) { + res.insert(gridName); + } } } } |
