[ 
https://issues.apache.org/jira/browse/LUCENE-8583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16707620#comment-16707620
 ] 

Nicholas Knize commented on LUCENE-8583:
----------------------------------------

{quote}Since we aren't a geo library that's not a goal we have to strive for
{quote}
+1 
{quote}And maybe it should be moved back to a private method in Polygon2D where 
it was originally?
{quote}
I agree. I'd also like to point out that we shouldn't need this to be super 
accurate in {{LatLonShape}} either. It looks like this is a byproduct of adding 
a dependency on orientation in {{LatLonShape.Triangle#encodeTriangle}} we 
should remove that dependency and just ensure order of the triangle vertices 
are preserved. 



> Make GeoUtils#orientation method more stable
> --------------------------------------------
>
>                 Key: LUCENE-8583
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8583
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/other
>            Reporter: Ignacio Vera
>            Priority: Major
>         Attachments: LUCENE-8583.patch
>
>
> The method GeoUtils#orient is problematic when called with points that are 
> almost collinear but not quite. In that case the sign of the determinant is 
> not reliable, so for example calling the method with points (a, b, c) and 
> with (c, b, a) gives the same orientation. 
> There is a complex implementation described here 
> (https://www.cs.cmu.edu/~quake/robust.html) where the method becomes more 
> reliable. I have been playing with such implementation and still is not 100% 
> reliable.
> My proposal is not to be fully precise and define a precision constant for 
> this method. Therefore whenever the value of determinant is small to that 
> precision, we consider the points to be collinear. In this case the results 
> of the method are reliable.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to