aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-11-22 23:16:48 +0100
committerEven Rouault <even.rouault@spatialys.com>2020-11-22 23:17:39 +0100
commit14b0496b00f2acda1085efdedfb432a993cf758d (patch)
treee817a7a417eb89be569343825ef8ed7ae389dff4 /src
parent17b5dbea2afebe6befb431ccd9e21c5d160c2942 (diff)
downloadPROJ-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.cpp18
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) {