aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-12-01 20:21:20 +0100
committerEven Rouault <even.rouault@spatialys.com>2018-12-01 20:21:40 +0100
commit0a746073ca3bba1f186024210555b81c741ace0c (patch)
treed82f975f8d30dabc933414322f413921119ce553 /src
parent23bf8bf5977073a91353f992ee0dd608be1d45fe (diff)
downloadPROJ-0a746073ca3bba1f186024210555b81c741ace0c.tar.gz
PROJ-0a746073ca3bba1f186024210555b81c741ace0c.zip
Fix PROJ_GRID_AVAILABILITY_IGNORED
Diffstat (limited to 'src')
-rw-r--r--src/coordinateoperation.cpp15
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()) {