From 0a746073ca3bba1f186024210555b81c741ace0c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 1 Dec 2018 20:21:20 +0100 Subject: Fix PROJ_GRID_AVAILABILITY_IGNORED --- src/coordinateoperation.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/coordinateoperation.cpp') 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 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()) { -- cgit v1.2.3