module Geocoder::Store::Base
Public Instance Methods
Calculate the bearing from another point to the object. See Geocoder::Calculations.distance_between
for ways of specifying the point.
# File lib/geo-calculator/store/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
Calculate the bearing from the object to another point. See Geocoder::Calculations.distance_between
for ways of specifying the point.
# File lib/geo-calculator/store/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
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).
# File lib/geo-calculator/store/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
Look up coordinates and assign to latitude
and longitude
attributes (or other as specified in geocoded_by
). Returns coordinates (array).
# File lib/geo-calculator/store/base.rb, line 73 def geocode fail end
Is this object geocoded? (Does it have latitude and longitude?)
# File lib/geo-calculator/store/base.rb, line 8 def geocoded? to_coordinates.compact.size > 0 end
Get nearby geocoded objects. Takes the same options hash as the near class method (scope). Returns nil if the object is not geocoded.
# File lib/geo-calculator/store/base.rb, line 63 def nearbys(radius = 20, options = {}) return nil unless geocoded? options.merge!(:exclude => self) unless send(self.class.primary_key).nil? self.class.near(self, radius, options) end
Look up address and assign to address
attribute (or other as specified in reverse_geocoded_by
). Returns address (string).
# File lib/geo-calculator/store/base.rb, line 81 def reverse_geocode fail end
Coordinates [lat,lon] of the object.
# File lib/geo-calculator/store/base.rb, line 15 def to_coordinates [:latitude, :longitude].map{ |i| send self.class.geocoder_options[i] } end