Class: Geodesics

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/geodesics.rb,
lib/geodesics/point.rb,
lib/geodesics/strategies/lambert.rb,
lib/geodesics/central_angles/vincenty.rb,
lib/geodesics/central_angles/haversine.rb,
lib/geodesics/central_angles/spherical.rb

Defined Under Namespace

Modules: CentralAngles, Strategies Classes: Degree, Point, Radian

Constant Summary collapse

STRATEGY =
Strategies::Lambert.new

Instance Method Summary collapse

Constructor Details

#initialize(strategy: STRATEGY) ⇒ Geodesics

Returns a new instance of Geodesics.



15
16
17
# File 'lib/geodesics.rb', line 15

def initialize(strategy: STRATEGY)
  @strategy = strategy
end

Instance Method Details

#distance_degree(latitude1, longitude1, latitude2, longitude2) ⇒ Object Also known as: distance



26
27
28
29
30
31
# File 'lib/geodesics.rb', line 26

def distance_degree(latitude1, longitude1, latitude2, longitude2)
  @strategy.distance(
    Degree.new(latitude1, longitude1).to_radian,
    Degree.new(latitude2, longitude2).to_radian
  )
end

#distance_radian(latitude1, longitude1, latitude2, longitude2) ⇒ Object



19
20
21
22
23
24
# File 'lib/geodesics.rb', line 19

def distance_radian(latitude1, longitude1, latitude2, longitude2)
  @strategy.distance(
    Radian.new(latitude1, longitude1),
    Radian.new(latitude2, longitude2)
  )
end