[
https://issues.apache.org/jira/browse/LUCENE-8080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16283276#comment-16283276
]
Karl Wright commented on LUCENE-8080:
-------------------------------------
Right, so I'm convinced that we can detect if a plane is bogus because it
slices the world in such a way as to not go between the center and the antipode
of the center. A plane that does that properly is OK and nothing else is
needed to use it as part of a sector definition.
If it is *outside*, however, then it clearly cannot be used. The question is
what to do then? I can buy that further splitting does not work, but this all
means in essence that you can't actually construct a sector because it doesn't
include the center.
So here's my thinking process.
(1) We're trying to assemble our set of points by applying an OR operation
between membership in multiple sectors.
(2) If we cannot properly describe a sector, this cannot work.
(3) If building a specific ExactCircle requires that we construct a bogus
sector, then we cannot build an ExactCircle with those parameters.
So the first thing to do is to simply fail (with an IllegalArgumentException)
when we can't build the circle, and we already clearly know how to do that.
I'd strongly suggest that we first commit code that addresses that issue
(failing hard when a bogus circle is built) and then analyze whether this is
going to stop real-world use of the feature. As you point out, the Vincenti
formula falls apart at a certain point as well, and there's little point in
re-engineering it to handle cases people will never use, so we're already in
the situation of working with approximations that have a limited range of
utility.
> GeoExactCircle improvement
> --------------------------
>
> Key: LUCENE-8080
> URL: https://issues.apache.org/jira/browse/LUCENE-8080
> Project: Lucene - Core
> Issue Type: Improvement
> Components: modules/spatial3d
> Reporter: Ignacio Vera
> Assignee: Karl Wright
> Attachments: LUCENE-8080-test.patch, LUCENE-8080.patch
>
>
> Hi [~daddywri],
> Current implementation of GeoExactCircle seems to work well for planet models
> with low flattening (~|0.025|). When flattening increase shapes start
> becoming invalid because of the cutting angle of the circle plane which
> results on the center of the circle ending up on the wrong side of the plane.
> I propose a new version of GeoExactCircle that tries to overcome this problem
> by creating a new plane for a circle sector in such cases. The new plane is
> built built for each sector when needed by using two points from the circle
> edge and the center of the world. The plane is such that it is built as close
> as possible to the circle plane of the sector. Points from the circle plane
> must not be within the new plane and the center of the circle must be within
> the plane.
> This approach seems to work well up to planets with flattening up to around
> ~|0.1|. I think after that the cutting angles of circle planes can be so thin
> that the apporach is not valid.
> Therefore I propose to add this new approach and limit the creation of such
> circles to planet models with flattening lower than |0.1|. Probably a
> limitation that does not affect most of the realistic cases.
> In addition this new version forces a minimum of 4 sectors in a circle. The
> issue on LUCENE-8071 came up again for circles of any radius so we should
> enforce it for all circles.
> Thanks!
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]