diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-11-22 23:16:48 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-11-22 23:17:39 +0100 |
| commit | 14b0496b00f2acda1085efdedfb432a993cf758d (patch) | |
| tree | e817a7a417eb89be569343825ef8ed7ae389dff4 /src | |
| parent | 17b5dbea2afebe6befb431ccd9e21c5d160c2942 (diff) | |
| download | PROJ-14b0496b00f2acda1085efdedfb432a993cf758d.tar.gz PROJ-14b0496b00f2acda1085efdedfb432a993cf758d.zip | |
projinfo.cpp: improve hint when to use --spatial-test intersects
Diffstat (limited to 'src')
| -rw-r--r-- | src/apps/projinfo.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index 37b76346..c87b23a2 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -689,6 +689,7 @@ static void outputOperations( std::vector<CoordinateOperationNNPtr> list; size_t spatialCriterionPartialIntersectionResultCount = 0; + bool spatialCriterionPartialIntersectionMoreRelevant = false; try { auto authFactory = dbContext @@ -714,10 +715,15 @@ static void outputOperations( ctxt->setSpatialCriterion( CoordinateOperationContext::SpatialCriterion:: PARTIAL_INTERSECTION); - spatialCriterionPartialIntersectionResultCount = - CoordinateOperationFactory::create() - ->createOperations(nnSourceCRS, nnTargetCRS, ctxt) - .size(); + auto list2 = + CoordinateOperationFactory::create()->createOperations( + nnSourceCRS, nnTargetCRS, ctxt); + spatialCriterionPartialIntersectionResultCount = list2.size(); + if (spatialCriterionPartialIntersectionResultCount == 1 && + list.size() == 1 && + list2[0]->nameStr() != list[0]->nameStr()) { + spatialCriterionPartialIntersectionMoreRelevant = true; + } } catch (const std::exception &) { } } @@ -736,6 +742,10 @@ static void outputOperations( "more results (" << spatialCriterionPartialIntersectionResultCount << ")" << std::endl; + } else if (spatialCriterionPartialIntersectionMoreRelevant) { + std::cout << "Note: using '--spatial-test intersects' would bring " + "more relevant results." + << std::endl; } if (summary) { for (const auto &op : list) { |
