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

Nicolas Helleringer commented on LUCENE-2359:
---------------------------------------------

Summary tables :

||Tile Level||TierLegnth||TierBoxes||TileXLength (miles)||
|0|1|1|24902|
|1|2|4|12451|
|2|4|16|6225,5|
|3|8|64|3112,75|
|4|16|256|1556,375|
|5|32|1024|778,1875|
|6|64|4096|389,09375|
|7|128|16384|194,546875|
|8|256|65536|97,2734375|
|9|512|262144|48,63671875|
|10|1024|1048576|24,31835938|
|11|2048|4194304|12,15917969|
|12|4096|16777216|6,079589844|
|13|8192|67108864|3,039794922|
|14|16384|268435456|1,519897461|
|15|32768|1073741824|0,75994873|

||Radius (miles)||legacy bestFit||legacy bestFit TileLength||legacy bestFit max 
number of Box to fetch||new bestFit||new bestFit TileLength||new bestFit number 
of Box to fetch||
|1|18|0,75994873|9|14|1,519897461|4|
|5|16|0,75994873|64|12|6,079589844|4|
|10|15|0,75994873|225|11|12,15917969|4|
|25|13|3,039794922|100|9|24,31835938|9|
|50|12|6,079589844|100|8|97,2734375|4|
|100|11|12,15917969|100|7|194,546875|4|
|250|10|24,31835938|144|6|389,09375|4|
|500|9|48,63671875|144|5|778,1875|4|
|1000|8|97,2734375|144|4|1556,375|4|
|2500|7|194,546875|196|3|3112,75|4|
|5000|6|389,09375|196|2|6225,5|4|
|10000|5|778,1875|196|1|12451|4|


> CartesianPolyFilterBuilder doesn't handle edge case around the 180 meridian
> ---------------------------------------------------------------------------
>
>                 Key: LUCENE-2359
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2359
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: contrib/spatial
>    Affects Versions: 2.9, 2.9.1, 2.9.2, 3.0, 3.0.1
>            Reporter: Grant Ingersoll
>            Assignee: Grant Ingersoll
>            Priority: Minor
>         Attachments: LUCENE-2359.patch, LUCENE-2359.patch, LUCENE-2359.patch, 
> TEST-2359.patch
>
>
> Test case:  
> Points all around the globe, plus two points at 0, 179.9 and 0,-179.9 (on 
> each side of the meridian).  Then, do a Cartesian Tier filter on a point 
> right near those two.  It will return all the points when it should just 
> return those two.
> The flawed logic is in the else clause below:
> {code}
> if (longX2 != 0.0) {
>               //We are around the prime meridian
>               if (longX == 0.0) {
>                       longX = longX2;
>                       longY = 0.0;
>               shape = getShapeLoop(shape,ctp,latX,longX,latY,longY);
>               } else {//we are around the 180th longitude
>                       longX = longX2;
>                       longY = -180.0;
>                       shape = getShapeLoop(shape,ctp,latY,longY,latX,longX);
>       }
> {code}
> Basically, the Y and X values are transposed.  This currently says go from 
> longY (-180) all the way around  to longX which is the lower left longitude 
> of the box formed.  Instead, it should go from the lower left long to -180.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to