/** * {@inheritdoc} */ public function toString(Workout $workout) : string { $data = array(); $tracks = $workout->tracks(); foreach ($tracks as $track) { $data[] = array('workout' => array('points' => $this->writeTrackPoints($track->trackPoints()))); } return json_encode($data, JSON_PRETTY_PRINT); }
/** * Write the tracks to the GPX. * * @param \XMLWriter $xmlWriter The XML writer. * @param Workout $workout The workout. */ private function writeTracks(\XMLWriter $xmlWriter, Workout $workout) { foreach ($workout->tracks() as $track) { $xmlWriter->startElement('trk'); $xmlWriter->writeElement('type', $track->sport()); $xmlWriter->startElement('trkseg'); $this->writeTrackPoints($xmlWriter, $track->trackPoints()); $xmlWriter->endElement(); $xmlWriter->endElement(); } }
/** * Write the tracks to the TCX. * * @param \XMLWriter $xmlWriter The XML writer. * @param Workout $workout The workout. */ private function writeTracks(\XMLWriter $xmlWriter, Workout $workout) { $xmlWriter->startElement('Activities'); foreach ($workout->tracks() as $track) { $xmlWriter->startElement('Activity'); $xmlWriter->writeAttribute('Sport', ucfirst($track->sport())); // Use the start date time as the ID. This could be anything. $xmlWriter->writeElement('Id', $this->formatDateTime($track->startDateTime())); $xmlWriter->startElement('Lap'); $xmlWriter->writeAttribute('StartTime', $this->formatDateTime($track->startDateTime())); $xmlWriter->writeElement('TotalTimeSeconds', (string) $track->duration()->totalSeconds()); $xmlWriter->writeElement('DistanceMeters', (string) $track->length()); $this->writeLapHeartRateDate($xmlWriter, $track); $xmlWriter->startElement('Track'); $this->writeTrackPoints($xmlWriter, $track->trackPoints()); $xmlWriter->endElement(); $xmlWriter->endElement(); $xmlWriter->endElement(); } $xmlWriter->endElement(); }