class GeoDistance
module GeoDistance
class Spherical < DistanceFormula def self.distance( lat1, lon1, lat2, lon2) from_longitude = lon1.to_radians from_latitude = lat1.to_radians to_longitude = lon2.to_radians to_latitude = lat2.to_radians c = Math.acos( Math.sin(from_latitude) * Math.sin(to_latitude) + Math.cos(from_latitude) * Math.cos(to_latitude) * Math.cos(to_longitude - from_longitude) ) #* EARTH_RADIUS[units.to_sym] GeoDistance::Distance.new c end end
end
Attributes
distance[RW]
unit[RW]
units[RW]
Public Class Methods
new(distance, unit = :radians)
click to toggle source
# File lib/geo-distance/distance.rb, line 10 def initialize distance, unit = :radians @distance = distance @unit = GeoUnits.key(unit) end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/geo-distance/distance.rb, line 17 def <=> other in_meters <=> other.in_meters end
number()
click to toggle source
# File lib/geo-distance/distance.rb, line 21 def number distance.round_to(precision[unit]) end