[ 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