[
https://issues.apache.org/jira/browse/LUCENE-8712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16781690#comment-16781690
]
Ignacio Vera edited comment on LUCENE-8712 at 3/5/19 7:55 AM:
--------------------------------------------------------------
-I have a go at this. I think the issue is in the method
GeoUtils#lineRelateLine. Currently it return the {{Relation.CELL_INSIDE_QUERY}}
if any of the segments terminates on the other.-
-I think the logic should only return that if the first segment terminates on
the other, otherwise should return {{Relation.CELL_CROSSES_QUERY.}}-
I have a closer look and it seems this approach still will misshandle some
situations.
was (Author: ivera):
I have a go to this. I think the issue is in the method
GeoUtils#lineRelateLine. Currently it return the {{Relation.CELL_INSIDE_QUERY}}
if any of the segments terminates on the other.
I think the logic should only return that if the first segment terminates on
the other, otherwise should return {{Relation.CELL_CROSSES_QUERY.}}
> Polygon2D does not detect crossings in some cases
> -------------------------------------------------
>
> Key: LUCENE-8712
> URL: https://issues.apache.org/jira/browse/LUCENE-8712
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: Ignacio Vera
> Priority: Major
> Attachments: LUCENE-8712.patch
>
>
> Polygon2D does not detect crossing if the triangle crosses through points of
> the polygon and none of the points are inside it. For example:
>
> {code:java}
> public void testLineCrossingPolygonPoints() {
> Polygon p = new Polygon(new double[] {0, -1, 0, 1, 0}, new double[] {-1, 0,
> 1, 0, -1});
> Polygon2D polygon2D = Polygon2D.create(p);
> PointValues.Relation rel =
> polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(-1.5)),
> GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
> GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(1.5)),
> GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
>
> GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(-1.5)),
> GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)));
> assertEquals(PointValues.Relation.CELL_CROSSES_QUERY, rel);
> }{code}
> [~nknize] you might want to look at this as I am not sure what to do.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]