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