[ https://issues.apache.org/jira/browse/LUCENE-8696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16777688#comment-16777688 ]
Karl Wright commented on LUCENE-8696: ------------------------------------- Since we've eliminated the computation of the solid's example intersection points, that basically leaves numerical factors as the only potential cause. Let's examine this further. In the case of GeoPaths on the WGS84 globe, path intersection points are described by "circles", which are in fact just planes that are picked so as to connect the path segments together, as described above. But, each plane with two adjoining segments is selected based on FOUR surface points, not three. That means that there is a gap between one of the points and the actual endpoint circle. When we compute membership in the path, we exclude points in that gap from membership. This is done by considering the path segment end planes as delimiters of membership for both the endpoint "circles" as well as the segments. But, those segment end planes are not considered when determining intersection, because they are "interior" to the path. This means that it is possible for getRelationship() to miss an intersection with the path edge if the "gap" is large enough and everything lines up perfectly, and thus "CONTAINS" is reported where "OVERLAPS" would be the actual correct answer. It should be possible to see if our test case would be resolved by considering path segment end edges. A simple trial code change should be sufficient to know. Then the question becomes how to prevent spurious intersections? We could just permit them (it's allowed in the contract), or we could make more significant changes to path representation, for better accuracy. Stay tuned. > TestGeo3DPoint.testGeo3DRelations failure > ----------------------------------------- > > Key: LUCENE-8696 > URL: https://issues.apache.org/jira/browse/LUCENE-8696 > Project: Lucene - Core > Issue Type: Bug > Components: modules/spatial3d > Reporter: Ignacio Vera > Assignee: Karl Wright > Priority: Major > Attachments: LUCENE-8696.patch > > > Reproduce with: > {code:java} > ant test -Dtestcase=TestGeo3DPoint -Dtests.method=testGeo3DRelations > -Dtests.seed=721195D0198A8470 -Dtests.slow=true -Dtests.badapples=true > -Dtests.locale=sr-RS -Dtests.timezone=Europe/Istanbul -Dtests.asserts=true > -Dtests.file.encoding=ISO-8859-1{code} > Error: > {code:java} > [junit4] FAILURE 1.16s | TestGeo3DPoint.testGeo3DRelations <<< > [junit4] > Throwable #1: java.lang.AssertionError: invalid hits for > shape=GeoStandardPath: {planetmodel=PlanetModel.WGS84, > width=1.3439035240356338(77.00000000000001), > points={[[lat=2.4457272005608357E-47, > lon=0.017453291479645996([X=1.0009663787601641, Y=0.017471932090601616, > Z=2.448463612203698E-47])], [lat=2.4457272005608357E-47, > lon=0.8952476719156919([X=0.6260252093310985, Y=0.7812370940381473, > Z=2.448463612203698E-47])], [lat=2.4457272005608357E-47, > lon=0.6491968536639036([X=0.7974608400583222, Y=0.6052232384770843, > Z=2.448463612203698E-47])], [lat=-0.7718789008737459, > lon=0.9236607495528212([X=0.43181767034308555, Y=0.5714183775701452, > Z=-0.6971214014446648])]]}}{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org