# lucene-dev mailing list archives

##### Site index · List index
Message view
Top
From "Bill Bell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (SOLR-2125) Spatial filter is not accurate
Date Tue, 21 Sep 2010 20:53:35 GMT
```
[ https://issues.apache.org/jira/browse/SOLR-2125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913244#action_12913244
]

Bill Bell commented on SOLR-2125:
---------------------------------

OK so that makes sense. Youa re using distance at 45 degrees. So the east-west would not extend
far enough.

Using http://en.wikipedia.org/wiki/Pythagorean_theorem would help on the east-west case, but
circle or ellipses is MUCH better.

Although extending the 45 degree out would be a conservative estimate. And since we usually
sort by distance asc, those extra points would be in the result set but at the end of the
list. (this is an improvement - again not at good as ellipses).

You need a quick function that tells you "is this lat,long in the circle / ellipses or not".
A range [X to Y] will not get you that. You need to use hsin().

On potential:

1. Do range select using points http://janmatuschek.de/LatitudeLongitudeBoundingCoordinates

(Lat => 1.2393 AND Lat <= 1.5532) AND (Lon >= -1.8184 AND Lon <= 0.4221)
2. Check those points for distance  "in the ellipses".  http://janmatuschek.de/LatitudeLongitudeBoundingCoordinates
acos(sin(1.3963) * sin(Lat) + cos(1.3963) * cos(Lat) * cos(Lon - (-0.6981))) <= 0.1570;

That should make it fast and simplify the calculations.

> Spatial filter is not accurate
> ------------------------------
>
>                 Key: SOLR-2125
>                 URL: https://issues.apache.org/jira/browse/SOLR-2125
>             Project: Solr
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 1.5
>            Reporter: Bill Bell
>            Assignee: Grant Ingersoll
>
> The calculations of distance appears to be off.
> Note: "The radius of the sphere to be used when calculating distances on a sphere (i.e.
which is set to 3,958.761458084784856. Most applications will not need to set this."
> The radius of the earth in KM is  6371.009 km (≈3958.761 mi).
> Also filtering distance appears to be off - example data:
> 45.17614,-93.87341 to 44.9369054,-91.3929348 Approx 137 miles Google. 169 miles = 220
kilometers
> http://....../solr/select?fl=*,score&start=0&rows=10&q={!sfilt%20fl=store_lat_lon}&qt=standard&pt=44.9369054,-91.3929348&d=280&sort=dist(2,store,vector(44.9369054,-91.3929348))
asc
> Nothing shows. d=285 shows results. This is off by a lot.
> Bill

--
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: dev-unsubscribe@lucene.apache.org