diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2018-12-01 20:21:20 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2018-12-01 20:21:40 +0100 |
| commit | 0a746073ca3bba1f186024210555b81c741ace0c (patch) | |
| tree | d82f975f8d30dabc933414322f413921119ce553 /src | |
| parent | 23bf8bf5977073a91353f992ee0dd608be1d45fe (diff) | |
| download | PROJ-0a746073ca3bba1f186024210555b81c741ace0c.tar.gz PROJ-0a746073ca3bba1f186024210555b81c741ace0c.zip | |
Fix PROJ_GRID_AVAILABILITY_IGNORED
Diffstat (limited to 'src')
| -rw-r--r-- | src/coordinateoperation.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/coordinateoperation.cpp b/src/coordinateoperation.cpp index 6ecd3838..bbe84698 100644 --- a/src/coordinateoperation.cpp +++ b/src/coordinateoperation.cpp @@ -9328,6 +9328,7 @@ struct FilterAndSort { // Precompute a number of parameters for each operation that will be // useful for the sorting. std::map<CoordinateOperation *, PrecomputedOpCharacteristics> map; + const auto gridAvailabilityUse = context->getGridAvailabilityUse(); for (const auto &op : res) { bool dummy = false; auto extentOp = getExtent(op, true, dummy); @@ -9360,14 +9361,20 @@ struct FilterAndSort { bool gridsAvailable = true; bool gridsKnown = true; if (context->getAuthorityFactory() && - context->getGridAvailabilityUse() == - CoordinateOperationContext::GridAvailabilityUse:: - USE_FOR_SORTING) { + (gridAvailabilityUse == + CoordinateOperationContext::GridAvailabilityUse:: + USE_FOR_SORTING || + gridAvailabilityUse == + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY)) { const auto gridsNeeded = op->gridsNeeded( context->getAuthorityFactory()->databaseContext()); for (const auto &gridDesc : gridsNeeded) { hasGrids = true; - if (!gridDesc.available) { + if (gridAvailabilityUse == + CoordinateOperationContext::GridAvailabilityUse:: + USE_FOR_SORTING && + !gridDesc.available) { gridsAvailable = false; } if (gridDesc.packageName.empty()) { |
