[ 
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]

Reply via email to