Class: GeoDistance
- Inherits:
-
Object
- Object
- GeoDistance
- Extended by:
- ClassMethods
- Includes:
- Comparable, Conversion, GeoUnits
- Defined in:
- lib/geo-distance/formula/spherical.rb,
lib/geo-distance.rb,
lib/geo-distance/scale.rb,
lib/geo-distance/formula.rb,
lib/geo-distance/distance.rb,
lib/geo-distance/conversion.rb,
lib/geo-distance/formula/flat.rb,
lib/geo-distance/class_methods.rb,
lib/geo-distance/formula/n_vector.rb,
lib/geo-distance/formula/vincenty.rb,
lib/geo-distance/conversion/meters.rb,
lib/geo-distance/formula/haversine.rb,
lib/geo-distance/conversion/radians.rb
Overview
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
Defined Under Namespace
Modules: ClassMethods, Conversion, Scale Classes: DistanceFormula, Flat, Haversine, NVector, Spherical, Vincenty
Instance Attribute Summary collapse
-
#distance ⇒ Object
Returns the value of attribute distance.
-
#unit ⇒ Object
(also: #units)
Returns the value of attribute unit.
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#initialize(distance, unit = :radians) ⇒ GeoDistance
constructor
A new instance of GeoDistance.
- #number ⇒ Object
Methods included from ClassMethods
algorithms, all_units, default_algorithm, default_algorithm=, default_units, default_units=, earth_radius, radians_per_degree, radians_ratio
Methods included from Conversion
Constructor Details
#initialize(distance, unit = :radians) ⇒ GeoDistance
Returns a new instance of GeoDistance.
10 11 12 13 |
# File 'lib/geo-distance/distance.rb', line 10 def initialize distance, unit = :radians @distance = distance @unit = GeoUnits.key(unit) end |
Instance Attribute Details
#distance ⇒ Object
Returns the value of attribute distance.
8 9 10 |
# File 'lib/geo-distance/distance.rb', line 8 def distance @distance end |
#unit ⇒ Object Also known as: units
Returns the value of attribute unit.
8 9 10 |
# File 'lib/geo-distance/distance.rb', line 8 def unit @unit end |
Instance Method Details
#<=>(other) ⇒ Object
17 18 19 |
# File 'lib/geo-distance/distance.rb', line 17 def <=> other in_meters <=> other.in_meters end |
#number ⇒ Object
21 22 23 |
# File 'lib/geo-distance/distance.rb', line 21 def number distance.round_to(precision[unit]) end |