Hello,

I would like to return all records within 1 km radius from a given
point but is not giving the results I expected. What happens is given
a [lat, lng], only the records with the given coordinates are returned
even though I've set the @geodist  (i.e.,  :with => {"@geodist" =>
0.0..500},) .  Below are my models and search code.

Just to test, I use acts_as_mappable's find and it gives the expected results:
>> Location.find(:all, :origin => near.address, :within => 
>> 0.5).collect(&:locatable).paginate(:page => params[:page])


class Workspace < ActiveRecord::Base
  has_one    :location, :as => :locatable, :dependent => :destroy

  define_index do
    indexes location.city.name, :as => :city

    has location(:id), :as => :location_id
    has 'RADIANS(locations.lat)', :as => :lat, :type => :float
    has 'RADIANS(locations.lng)', :as => :lng, :type => :float
    set_property :latitude_attr  => 'lat'
    set_property :longitude_attr => 'lng'

    set_property :delta => true
  end
end

class Location < ActiveRecord::Base
  acts_as_mappable :auto_geocode => true

  belongs_to :locatable, :polymorphic => true
  belongs_to :city

  validates_presence_of :lat, :lng
end


  def search_locatables
    options = { :page => (params[:page] or 1), :per_page => PER_PAGE }

    near = Location.find(params[:near])
    lat = (near.lat / 180.0) * Math::PI
    lng = (near.lng / 180.0) * Math::PI

    options.merge! :geo => [lat, lng], :with => {"@geodist" => 0.0..500},
      :latitude_attr => :lat, :longitude_attr => :lng

    if City.current
      options.merge! :conditions => {:city => City.current.name}
    end

    ThinkingSphinx.search params[:q], options
  end


Best regards,

Greg

-- 
Starting From Scratch
http://gregmoreno.ca

I'm on Twitter too!
http://twitter.com/gregmoreno

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

Reply via email to