[
https://issues.apache.org/jira/browse/LUCENE-2475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869969#action_12869969
]
Julian Atkinson commented on LUCENE-2475:
-----------------------------------------
I've done some more investigation and I think the dimensions of the Bounding
Box is not the issue. If I add a data point outside the box but within the
circle it is returned as a hit.
//add the following to my test case data set and this is returned - see
attachment
addPoint(writer,"outside box in circle",52.6695404, 4.8471904);
This must be because the original shape is extended to include neighboring
boxes in CartesianPolyFilterBuilder.getShapeLoop() ?
So although it makes sense logically it is irrelevant to my actual problem.
I also noticed the hit that I am missing is just WITHIN the dimensions of the
boundary box shape - so now I really don't understand why it is not being
matched.
I'll continue to look into this but any help from someone more familiar with
the code would be appreciated.
> Incorrect Bounding Box calculation results in the exclusion of valid data
> locations
> -----------------------------------------------------------------------------------
>
> Key: LUCENE-2475
> URL: https://issues.apache.org/jira/browse/LUCENE-2475
> Project: Lucene - Java
> Issue Type: Bug
> Components: contrib/spatial
> Affects Versions: 2.9.1, 3.0
> Reporter: Julian Atkinson
> Attachments: BoundingBoxCalucationIssueTest.java
>
>
> I have found a scenario where some of my location data is not being returned.
> The calculated distance between my search origin and the data is well within
> my search radius but the data is not being returned.
> I have traced this down to what I think is an error when calculating the
> boundary box which is used to determine the Shape for the
> CartesianShapeFilter in CartesianPolyFilterBuilder.getBoxShape()
> The boundary box calculated by LLRect.createBox() is incorrect. The box
> returned is a box that fits WITHIN the search circle, where the four corners
> of the box intersect the circle line. This creates 4 regions where data
> points are not included - these are regions that are in the circle but
> outside the box.
> What I is required is a boundary box that fully CONTAINS the search circle.
> As a side effect you would end up with 4 regions outside of the circle but
> inside the box. This would potentially return data that are not real hits
> but these can be filtered out by a more precise distance comparison.
> I will attach a test class that covers the issue with more details and a
> proposed fix - a one liner in LLRect.java
> I would appreciate if someone could verify my findings. All my data tests
> pass with this fix but there is one test case in Lucene 3.0.0 that fails and
> I can't figure out why. TestCartesian.testAntiM().
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]