lib/hrmparser/importer/gpx.rb in teich-hrmparser-0.4.9 vs lib/hrmparser/importer/gpx.rb in teich-hrmparser-0.5.0
- old
+ new
@@ -12,10 +12,12 @@
ttime = (@xml/:trk/:trkpt/:time).first.innerHTML
workout.time = Time.parse(ttime)
trackpoints = []
distance = 0
+ workout.duration = 0
+ last_trackpoint = false
(@xml/:trk).each do |trk|
(trk/:trkpt).each do |trkpt|
trackpoint = HRMParser::TrackPoint.new
trackpoint.altitude = (trkpt/:ele).innerHTML.to_f
trackpoint.time = Time.parse((trkpt/:time).innerHTML)
@@ -26,14 +28,19 @@
distance += trackpoint.calc_distance(trackpoints.last, trackpoint)
trackpoint.distance = distance
trackpoint.speed = trackpoint.calc_speed(trackpoints.last, trackpoint)
+ if last_trackpoint && trackpoints.last && trackpoint.speed
+ workout.duration += trackpoint.time - last_trackpoint.time if trackpoint.speed > 0.04
+ end
trackpoints << trackpoint
+ last_trackpoint = trackpoint
+
end
end
- workout.duration = trackpoints.last.time - trackpoints.first.time
+ # workout.duration = trackpoints.last.time - trackpoints.first.time
workout.trackpoints = trackpoints
workout.calc_average_speed!
workout.calc_altitude_gain!
workout.distance = trackpoints.last.distance
return workout
\ No newline at end of file