Module: Geocoder::Store::Base

Included in:
ActiveRecord, MongoMapper, Mongoid
Defined in:
lib/geocoder/stores/base.rb

Instance Method Summary collapse

Instance Method Details

#bearing_from(point, options = {}) ⇒ Object

Calculate the bearing from another point to the object. See Geocoder::Calculations.distance_between for ways of specifying the point.



51
52
53
54
55
56
# File 'lib/geocoder/stores/base.rb', line 51

def bearing_from(point, options = {})
  options[:method] ||= self.class.geocoder_options[:method]
  return nil unless geocoded?
  Geocoder::Calculations.bearing_between(
    point, to_coordinates, options)
end

#bearing_to(point, options = {}) ⇒ Object

Calculate the bearing from the object to another point. See Geocoder::Calculations.distance_between for ways of specifying the point.



39
40
41
42
43
44
# File 'lib/geocoder/stores/base.rb', line 39

def bearing_to(point, options = {})
  options[:method] ||= self.class.geocoder_options[:method]
  return nil unless geocoded?
  Geocoder::Calculations.bearing_between(
    to_coordinates, point, options)
end

#distance_to(point, units = nil) ⇒ Object Also known as: distance_from

Calculate the distance from the object to an arbitrary point. See Geocoder::Calculations.distance_between for ways of specifying the point. Also takes a symbol specifying the units (:mi or :km; can be specified in Geocoder configuration).



25
26
27
28
29
30
# File 'lib/geocoder/stores/base.rb', line 25

def distance_to(point, units = nil)
  units ||= self.class.geocoder_options[:units]
  return nil unless geocoded?
  Geocoder::Calculations.distance_between(
    to_coordinates, point, :units => units)
end

#geocodeObject

Look up coordinates and assign to latitude and longitude attributes (or other as specified in geocoded_by). Returns coordinates (array).



62
63
64
# File 'lib/geocoder/stores/base.rb', line 62

def geocode
  fail
end

#geocoded?Boolean

Is this object geocoded? (Does it have latitude and longitude?)

Returns:

  • (Boolean)


8
9
10
# File 'lib/geocoder/stores/base.rb', line 8

def geocoded?
  to_coordinates.compact.size == 2
end

#reverse_geocodeObject

Look up address and assign to address attribute (or other as specified in reverse_geocoded_by). Returns address (string).



70
71
72
# File 'lib/geocoder/stores/base.rb', line 70

def reverse_geocode
  fail
end

#to_coordinatesObject

Coordinates [lat,lon] of the object.



15
16
17
# File 'lib/geocoder/stores/base.rb', line 15

def to_coordinates
  [:latitude, :longitude].map{ |i| send self.class.geocoder_options[i] }
end