2010/4/1 Grant Ingersoll <[email protected]>
>
> On Apr 1, 2010, at 8:22 AM, Helleringer, Nicolas wrote:
>
> I did put a comment on the jira issue pointing to the code I wrote inside
> Chris Male perspective.
> He answered on the JIRA topic as well.
>
>
> Yep, saw that. If you wish for that code to be in Lucene, you need to post
> it as a patch to Lucene and grant provenance to the ASF.
>
That is what we want to happen. We are working on it, both of us.
> Here's another question:
> Given the same latitude and same distance, shouldn't there be the same
> number of box ids no matter the longitude? Yet the following code says
> otherwise:
> public void testCartesianPolyFilterBuilder() throws Exception {
> CartesianPolyFilterBuilder cpfb = new
> CartesianPolyFilterBuilder(CartesianTierPlotter.DEFALT_FIELD_PREFIX, 2, 15);
> //try out some shapes
> final double miles = 20.0;
> // Hawaii
> // 2300 miles to Marshall Island Airfield
> //Hawaii to Midway is 911 miles
> lat = 0;
> lng = -179.9;
> Shape shape;
> shape = cpfb.getBoxShape(lat, lng, miles);
> System.out.println("Tier: " + shape.getTierLevel());
> System.out.println("area: " + shape.getArea().size());
> lat = 30;
> lng = -100;
> shape = cpfb.getBoxShape(lat, lng, miles);
> System.out.println("Tier: " + shape.getTierLevel());
> System.out.println("area: " + shape.getArea().size());
>
> lat = 30;
> lng = 100;
> shape = cpfb.getBoxShape(lat, lng, miles);
> System.out.println("Tier: " + shape.getTierLevel());
> System.out.println("area: " + shape.getArea().size());
> }
>
> -Grant
>
No.
The longitude has an effect because of the projection used to go from a
spherical world to a flat coordinates system.
See http://www.nsshutdown.com/projects/lucene/whitepaper/locallucene_v2.html
and http://en.wikipedia.org/wiki/Sinusoidal_projection
You can clearly see that all longitude are not equals in terms of number of
boxes.
You could ask why using Sinusoidal projection ? Because it is does not have
to much distance distortion in populated places and it is very simple to
calculate.
Hope it helps.
Nicolas