class Starline::Builders::Tracks

Public Class Methods

build(geo_points) click to toggle source
# File lib/starline/builders/tracks.rb, line 8
def self.build(geo_points)
  tracks = []

  geo_points.each_cons(2) do |start_point, end_point|
    tracks << build_track(start_point, end_point)
  end

  Entities::TracksCollection.new(tracks)
end

Private Class Methods

build_track(start_point, end_point) click to toggle source
# File lib/starline/builders/tracks.rb, line 19
def self.build_track(start_point, end_point)
  Entities::Track.new(
    start_point: start_point,
    end_point: end_point,
    distance: calculate_distance(start_point, end_point)
  )
end
calculate_distance(start_point, end_point) click to toggle source
# File lib/starline/builders/tracks.rb, line 27
def self.calculate_distance(start_point, end_point)
  FastHaversine.distance_between(
    [start_point.lat, start_point.lon],
    [end_point.lat, end_point.lon],
    :km
  )
end