Open carstengrimm opened 7 years ago
Hi, so you have problem with reading heart rate from GPX files at all or hr is not shown in statistics?
Currecntly I am calculating stats only for basic data as distance, elevation etc. I don't know exactly how to calculate stats properly from extension objects such as Garmin TrackPointExtension, because I want to find an universal way and support all the extensions in the end.
If you have problems with reading heart rate at all, that probably a bug which have to be fixed, so please let me know.
It's also nice to hear that phpGPX is easy to integrate and helpful for you :)
( [distance] => 6513.8143967259 [avgSpeed] => 3.4907901375809 [avgPace] => 286.46809478298 [minAltitude] => 122 [maxAltitude] => 132.9 [cumulativeElevationGain] => 40.1 [startedAt] => 2016-08-25T20:42:35+00:00 [finishedAt] => 2016-08-25T21:13:41+00:00 [duration] => 1866 )
that's one of my sample gpx files which are output (dumped from $track->stats->toArray())
while the gpx file obviously uses heart rate too..
<trkpt lat="50.162982000" lon="8.623605000">
<ele>128.5</ele>
<time>2016-08-25T20:44:18Z</time>
<extensions>
<gpxtpx:TrackPointExtension>
<gpxtpx:hr>152</gpxtpx:hr>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>
The stats attribute contains only aggregated/calculated data from GPX file ($track->stats
object contain statistics from the whole file - all segments & points). If you want to access extensions data (gpxtpx:hr is not part of original GPX specification, but it's an Garmin TrackPoint extension - fully supported by phpGPX).
Heart rate belongs to point, not to whole track. phpGPX not currently support stats for the extensions as I said before. I am looking for the best implementation how to calculate stats for all kind of extensions.
If you want to access Garmin TrackPointExtension data, you can use
$track->segments[0]->$points[0]->extensions->trackPointExtension->hr;
var_dump($track->segments[0]->points[0]->extensions->trackPointExtension->);
If you still can't find the extension data, please let me know, is probably a bug which have to be fixed. I hope I helped you, if there is still something unclear feel free to ask ;)
yeah i can call each single point... i guess i would have to go manually iterate though each point[$i]->extension->track...->hr; and calculate the average
Yop, I am so sorry but currently there is no other way :( But once I will be done with tests and new documentation, this is the first thing for marked for implementation.
no worries
I would like to implement this using middlewares in 2.x
. Please check #67 for more information.
I just discovered phpGPX and while i am only trying to read out my gpx files, i have quickly discovered that heart rate is no being read out...