Ah, I read your message too fast. I see I added that in
https://github.com/OSGeo/PROJ/commit/f50221ed6606a67ef0354cacd449f02aca3faba7.
Unfortunately there is no corresponding test and my memories have
obviously vanished. This is perhaps a situation where --spatial-test
intersects would return a non-ballpark operation and without it a
ballpark operation. Although I suspect this might be more subtle than that.
Le 20/01/2023 à 20:51, Javier Jimenez Shaw a écrit :
Thanks Even
Unfortunately I do not have any example. I was just reading the code
of projinfo to see how to get CoordinateOperations in C++.
.___ ._ ..._ .. . ._. .___ .. __ . _. . __.. ... .... ._ .__
Entre dos pensamientos racionales
hay infinitos pensamientos irracionales.
On Fri, 20 Jan 2023 at 20:15, Even Rouault
<[email protected]> wrote:
Hi Javier,
which exact projinfo invokation did you use ?
(I'm not that surprised and remember having already seeing that.
There are various heuristics and filtering that could cause this)
Even
Le 20/01/2023 à 20:11, Javier Jimenez Shaw a écrit :
Hi
Inspecting the code of projinfo, I see a situation that may show
the message
"Note: using '--spatial-test intersects' would bring more
relevant results".
Looking at the code, it happens only when using "--spatial-test"
option with "intersects" or default ("contains") both return 1
operation... but different.
How is that possible? I would expect that "intersects" contains
all in "contains".
The code involved is this
list =
CoordinateOperationFactory::create()->createOperations(
nnSourceCRS, nnTargetCRS, ctxt);
if (!spatialCriterionExplicitlySpecified &&
spatialCriterion ==
CoordinateOperationContext::SpatialCriterion::
STRICT_CONTAINMENT) {
try {
ctxt->setSpatialCriterion(
CoordinateOperationContext::SpatialCriterion::
PARTIAL_INTERSECTION);
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 &) {
}
}
....
if (spatialCriterionPartialIntersectionMoreRelevant) {
std::cout << "Note: using '--spatial-test intersects'
would bring "
"more relevant results."
<< std::endl;
}
Thanks
Javier
.___ ._ ..._ .. . ._. .___ .. __ . _. . __.. ... .... ._ .__
Entre dos pensamientos racionales
hay infinitos pensamientos irracionales.
_______________________________________________
PROJ mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/proj
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
PROJ mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/proj
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
PROJ mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/proj