Hi Timo.

I tried that and without examining what a valid range of radians would be, 
deduced from the results that I didn't need to do that.  Now I realize my 
error was in my query when the database was properly indexed.  I was 
passing in degrees in the :geo => [lat, lng]... and that gave me bad 
results.

Thanks for the wake-up call.

-Lonnie


On Wednesday, March 6, 2013 12:55:58 PM UTC-5, Timo Virkkala wrote:
>
> Hi Lonnie, 
>
> Sphinx expects coordinates to be in radians. Yours seem to be in degrees. 
> From the Sphinx reference: "Note that both latitudes and longitudes 
> must be in radians and the result will be in meters" 
>
> What you want to do is probably something like this: 
>       has "RADIANS(latittude)", :as => :lat,  :type => :float 
>       has "RADIANS(longitude)", :as => :lng, :type => :float 
>
> -T- 
>
> On Wed, Mar 6, 2013 at 7:14 PM, Lonnie Warpup 
> <[email protected]<javascript:>> 
> wrote: 
> > So I'd like to use Thinking Sphinx purely as a tool to allow the user to 
> > order some associated companies based on location.  Here is the 
> important 
> > information in my index: 
> > 
> >> ThinkingSphinx::Index.define :company, :with => :active_record do 
> >>   # Attributes (cannot be text) 
> >>   has id, :as => :company_id 
> >>   has longitude, :as => :lng, :type => :float 
> >>   has lattitude, :as => :lat, :type => :float # Forgive the spelling 
> error 
> >> end 
> > 
> > 
> > rake ts:rebuild done, and here is my console log: 
> > 
> >> > c = Company.find(53766); "Base: #{c.city}, #{c.state} 
> [#{c.lattitude}, 
> >> > #{c.longitude}]" 
> >> "Base: Oak Park, Michigan [42.46714, -83.15695]" 
> >> 
> >> 
> >> 
> >> > Company.search(:indices => ['company_core'], :geo => [c.lattitude, 
> >> > c.longitude], :order => "geodist ASC").map{|c| "#{c.city}, #{c.state} 
> >> > [#{c.lattitude}, #{c.longitude}] (#{c.id})" } 
> >> [ 
> >>     [ 0] "Oak Park, Michigan [42.46714, -83.15695] (276075)", 
> >>     [ 1] "Ferndale, Michigan [42.46672, -83.1259] (3419)", 
> >>     [ 2] "Ferndale, Michigan [42.46825, -83.12812] (3214)", 
> >>     [ 3] "Tulsa, Oklahoma [36.18352, -95.7884] (82944)", 
> >>     [ 4] "Ferndale, Michigan [42.46381, -83.12867] (47512)", 
> >>     [ 5] "Houston, Texas [29.89859, -95.66493] (143434)", 
> >>     [ 6] "Greensboro, North Carolina [36.07354, -79.94699] (8618)", 
> >>     [ 7] "Catoosa, Oklahoma [36.18007, -95.72873] (26684)", 
> >>     [ 8] "Ferndale, Michigan [42.46246, -83.12375] (101585)", 
> >>     [ 9] "coimbatore, Tamil Nadu [10.94272, 76.97917] (89942)", 
> >>     [10] "coimbatore, Tamil Nadu [10.94272, 76.97917] (217885)", 
> >>     [11] "Warren, Michigan [42.47056, -83.08191] (24528)", 
> >>     [12] "Houston, Texas [29.8968, -95.65148] (79232)", 
> >>     [13] "Hazel Park, Michigan [42.47218, -83.10462] (4132)", 
> >>     [14] "Casilda  -  Santa Fe,  [-33.0483, -61.14761] (65558)", 
> >>     [15] "Ferndale, Michigan [42.47307, -83.1332] (107970)", 
> >>     [16] "Warren, Michigan [42.46676, -83.04572] (4209)", 
> >>     [17] "Warren, Michigan [42.46676, -83.04572] (91989)", 
> >>     [18] "Houston, Texas [29.8996, -95.61071] (4534)", 
> >>     [19] "Warren, Michigan [42.46892, -83.04759] (9379)" 
> >> ] 
> > 
> > 
> > And here is what was logged as the query: 
> > 
> >>   SELECT *, GEODIST(42.46714, -83.15695, lat, lng) AS geodist FROM 
> >> `company_core` WHERE MATCH('@sphinx_internal_class_name (Company)') AND 
> >> sphinx_deleted = 0 ORDER BY geodist ASC LIMIT 0, 20 OPTION 
> max_matches=5000 
> > 
> > 
> > The first few results are not bad, though I would have thought the base 
> > company would have appeared first.  Then things get even stranger.  Is 
> there 
> > something fundamental that I am doing incorrect here? 
> > 
> > -Lonnie 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "Thinking Sphinx" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to [email protected] <javascript:>. 
> > To post to this group, send email to 
> > [email protected]<javascript:>. 
>
> > Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en. 
>
> > For more options, visit https://groups.google.com/groups/opt_out. 
> > 
> > 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to