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

Reply via email to