You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Ignacio Vera (JIRA)" <ji...@apache.org> on 2018/02/05 11:12:00 UTC

[jira] [Commented] (LUCENE-8157) GeoPolygon factory fails in recognize convex polygon

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

Ignacio Vera commented on LUCENE-8157:
--------------------------------------

Attached is a random test that reproduces the problem and a static case.

 

I think the only way to solve this problem is to change the approach on how to calculate sideness. It is possible to compute the bearing angle between two points, and knowing that angle, it is trivial to compute a point on the right side using the method surfacePointOnBearing() in PlanetModel. Attached is an example of this solution.

Of course that might have performance implications as those calculations are iterative, and might require refactoring of the polygon factory.

 

> GeoPolygon factory fails in recognize convex polygon
> ----------------------------------------------------
>
>                 Key: LUCENE-8157
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8157
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/spatial3d
>            Reporter: Ignacio Vera
>            Priority: Major
>         Attachments: LUCENE-8157-test.patch, LUCENE-8157.patch
>
>
> When a polygon contains three consecutive points which are nearly co-planar, the polygon factory may fail to recognize the concavity/convexity of the polygon. I think the problem is the way the sideness for a polygon edge is calculated. It relies in the position of the next point in respect of the previous polygon edge which fails on the case explained above because of numerical imprecision. The result is that sideness is messed up.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org