Class: Arel::Nodes::Haversine
- Inherits:
-
Function
- Object
- Function
- Arel::Nodes::Haversine
- Defined in:
- lib/arel/nodes/haversine.rb
Instance Method Summary collapse
-
#initialize(lat1, lng1, lat2, lng2, options = nil) ⇒ Haversine
constructor
A new instance of Haversine.
Constructor Details
#initialize(lat1, lng1, lat2, lng2, options = nil) ⇒ Haversine
Returns a new instance of Haversine.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/arel/nodes/haversine.rb', line 6 def initialize lat1, lng1, lat2, lng2, = nil super Multiplication.new( Arcsine.new( SquareRoot.new( Addition.new( Pow.new(Sine.new(Division.new(Radians.new(lat1 - lat2), 2)), 2), Multiplication.new( Pow.new(Sine.new(Division.new(Radians.new(lng1 - lng2), 2)), 2), Multiplication.new( Cosine.new(Radians.new(lat2)), Cosine.new(Radians.new(lat1)) ) ) ) ) ), diameter() ) end |