Module: Sequel::Plugins::Mappable::ClassMethods

Defined in:
lib/sequel_mappable.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_mappableObject



14
15
16
# File 'lib/sequel_mappable.rb', line 14

def acts_as_mappable
  true
end

#distance_column_nameObject



18
19
20
# File 'lib/sequel_mappable.rb', line 18

def distance_column_name
  :distance
end

#distance_sql(origin) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/sequel_mappable.rb', line 30

def distance_sql(origin)
  lat = deg2rad(origin.lat)
  lng = deg2rad(origin.lng)
  multiplier = units_sphere_multiplier(:kms)
  %|
    (ACOS(least(1,COS(#{lat})*COS(#{lng})*COS(RADIANS(lat))*COS(RADIANS(lng))+
    COS(#{lat})*SIN(#{lng})*COS(RADIANS(lat))*SIN(RADIANS(lng))+
    SIN(#{lat})*SIN(RADIANS(lat))))*#{multiplier})
  |
end

#lat_column_nameObject



22
23
24
# File 'lib/sequel_mappable.rb', line 22

def lat_column_name
  :lat
end

#lng_column_nameObject



26
27
28
# File 'lib/sequel_mappable.rb', line 26

def lng_column_name
  :lng
end