diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-01-25 02:23:18 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-01-25 02:23:18 +0100 |
| commit | 680d1eb93bfd0ffa274da2a28dc7fce704a059b9 (patch) | |
| tree | 3e4e4fa40d594c4311bffcc9216409d985148f0f /src/iso19111/factory.cpp | |
| parent | 1039889c424af9fd89a637e610c4243839d3cb86 (diff) | |
| download | PROJ-680d1eb93bfd0ffa274da2a28dc7fce704a059b9.tar.gz PROJ-680d1eb93bfd0ffa274da2a28dc7fce704a059b9.zip | |
Implement RFC 5
Diffstat (limited to 'src/iso19111/factory.cpp')
| -rw-r--r-- | src/iso19111/factory.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 7e680d31..54aa993f 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -987,7 +987,8 @@ bool DatabaseContext::lookForGridInfo( openLicense = (row[3].empty() ? row[4] : row[3]) == "1"; directDownload = (row[5].empty() ? row[6] : row[5]) == "1"; - if (considerKnownGridsAsAvailable && !packageName.empty()) { + if (considerKnownGridsAsAvailable && + (!packageName.empty() || (!url.empty() && openLicense))) { gridAvailable = true; } @@ -1012,6 +1013,30 @@ bool DatabaseContext::isKnownName(const std::string &name, sql += "\" WHERE name = ? LIMIT 1"; return !d->run(sql, {name}).empty(); } +// --------------------------------------------------------------------------- + +std::string +DatabaseContext::getProjGridName(const std::string &oldProjGridName) { + auto res = d->run("SELECT proj_grid_name FROM grid_alternatives WHERE " + "old_proj_grid_name = ?", + {oldProjGridName}); + if (res.empty()) { + return std::string(); + } + return res.front()[0]; +} + +// --------------------------------------------------------------------------- + +std::string DatabaseContext::getOldProjGridName(const std::string &gridName) { + auto res = d->run("SELECT old_proj_grid_name FROM grid_alternatives WHERE " + "proj_grid_name = ?", + {gridName}); + if (res.empty()) { + return std::string(); + } + return res.front()[0]; +} // --------------------------------------------------------------------------- |
