I've been looking at this with Olle over on the RavenDB mailing list. Just to add that this patch https://issues.apache.org/jira/secure/attachment/12420781/LUCENE-1930.patch solves the issue also. It's from this issue https://issues.apache.org/jira/browse/LUCENE-1930
But it's more complicated than the fix you propose. As far as I can tell it uses a completely different method of projecting locations, but I don't really know much about how it works other than that. On 6 July 2011 14:33, Digy (JIRA) <[email protected]> wrote: > > [ > https://issues.apache.org/jira/browse/LUCENENET-431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13060571#comment-13060571] > > Digy commented on LUCENENET-431: > -------------------------------- > > Hi Olle, > > {code} > static double TransformLat(double lat) > { > var PI = 3.14159265358979323846; > return (Math.Atan(Math.Exp((lat * 180 / 20037508.34) / 180 * > PI)) / PI * 360 - 90) * 100000; > } > > > static double TransformLon(double lon) > { > return (lon * 180 / 20037508.34) * 100000; > } > > .... > > private double _lat = TransformLat(55.6880508001); > private double _lng = TransformLon(13.5871808352); // This passes: > 13.6271808352 > > .... > > private void AddData(IndexWriter writer) > { > AddPoint(writer, "Within radius", TransformLat(55.6880508001), > TransformLon(13.5717346673)); > AddPoint(writer, "Within radius", TransformLat(55.6821978456), > TransformLon(13.6076183965)); > AddPoint(writer, "Within radius", TransformLat(55.673251569), > TransformLon(13.5946697607)); > AddPoint(writer, "Close but not in radius", > TransformLat(55.8634157297), TransformLon(13.5497731987)); > AddPoint(writer, "Faar away", TransformLat(40.7137578228), > TransformLon(-74.0126901936)); > > writer.Commit(); > writer.Close(); > } > {code} > > When I change your code as above, it seems to work(According to above > functions yours 4th point should be 11 miles away). > > If this works for all your cases, we can think of a patch for Spatial.Net. > (Don't ask what these two functions do, since I found them somewhere in > OpenLayers project :) ) > Maybe someone can explain these "projection" issues(if this really is the > case). > > DIGY > > > > > Spatial.Net Cartesian won't find docs in radius in certain cases > > ---------------------------------------------------------------- > > > > Key: LUCENENET-431 > > URL: https://issues.apache.org/jira/browse/LUCENENET-431 > > Project: Lucene.Net > > Issue Type: Bug > > Components: Lucene.Net Contrib > > Affects Versions: Lucene.Net 2.9.4 > > Environment: Windows 7 x64 > > Reporter: Olle Jacobsen > > Labels: spatialsearch > > > > To replicate change Lucene.Net.Contrib.Spatial.Test.TestCartesian to the > following witch should return 3 results. > > Line > > 42: private double _lat = 55.6880508001; > > 43: private double _lng = 13.5871808352; // This passes: 13.6271808352 > > 73: AddPoint(writer, "Within radius", 55.6880508001, 13.5717346673); > > 74: AddPoint(writer, "Within radius", 55.6821978456, 13.6076183965); > > 75: AddPoint(writer, "Within radius", 55.673251569, 13.5946697607); > > 76: AddPoint(writer, "Close but not in radius", 55.8634157297, > 13.5497731987); > > 77: AddPoint(writer, "Faar away", 40.7137578228, -74.0126901936); > > 130: const double miles = 5.0; > > 156: Console.WriteLine("Distances should be 3 " + distances.Count); > > 157: Console.WriteLine("Results should be 3 " + results); > > 159: Assert.AreEqual(3, distances.Count); // fixed a store of only needed > distances > > 160: Assert.AreEqual(3, results); > > -- > This message is automatically generated by JIRA. > For more information on JIRA, see: http://www.atlassian.com/software/jira > > >
