class V900Waypoint

a facade which presents a CSV::row as a v900 waypoint

Public Class Methods

new(row) click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 5
def initialize row
  @row = row
end

Public Instance Methods

heading() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 53
def heading
  @row["HEADING"].to_i
end
height() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 45
def height
  @row["HEIGHT"].to_i
end
index() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 9
def index
  @row["INDEX"].to_i
end
lat() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 30
def lat
  value = @row["LATITUDE N/S"]
  value.match(/(N|E)/) ? value[0..-2].to_f : -1 * value[0..-2].to_f
end
lat_lon() click to toggle source

return an array with lat and lon: [lat, lon]

# File lib/columbus3/v900track/v900waypoint.rb, line 36
def lat_lon
  [lat, lon]
end
lon() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 25
def lon
  value = @row["LONGITUDE E/W"]
  value.match(/(N|E)/) ? value[0..-2].to_f : -1 * value[0..-2].to_f
end
lon_lat() click to toggle source

… and since many prefer the other way around ..

# File lib/columbus3/v900track/v900waypoint.rb, line 41
def lon_lat
  [lon, lat]
end
speed() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 49
def speed
  @row["SPEED"].to_i
end
tag() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 13
def tag
  @row["TAG"]
end
time() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 17
def time
  date = @row["DATE"]
  time = @row["TIME"]
  # make sure it is understood as ZULU time (UTC) and pad time to six numbers 75858 -> 075858
  # http://stackoverflow.com/questions/1543171/how-can-i-output-leading-zeros-in-ruby
  Time.parse("#{date}T" + time.to_s.rjust(6, "0") + "Z") 
end
to_s() click to toggle source
# File lib/columbus3/v900track/v900waypoint.rb, line 57
def to_s
  "#{@row["INDEX"]},T,#{@row["DATE"]},#{@row["TIME"]},#{@row["LATITUDE N/S"]},#{@row["LONGITUDE E/W"]},#{@row["HEIGHT"]},#{@row["SPEED"]},#{@row["HEADING"]},0"
end