/**
  * Add track to xml 
  */
 protected function setTrack()
 {
     $Starttime = $this->Context->activity()->timestamp();
     $Trackdata = new Trackdata\Loop($this->Context->trackdata());
     $Route = new Route\Loop($this->Context->route());
     $hasElevation = $this->Context->route()->hasOriginalElevations();
     $hasHeartrate = $this->Context->trackdata()->has(Trackdata\Object::HEARTRATE);
     while ($Trackdata->nextStep()) {
         $Route->nextStep();
         $Trackpoint = $this->Track->addChild('trkpt');
         $Trackpoint->addAttribute('lat', $Route->latitude());
         $Trackpoint->addAttribute('lon', $Route->longitude());
         $Trackpoint->addChild('time', $this->timeToString($Starttime + $Trackdata->time()));
         if ($hasElevation) {
             $Trackpoint->addChild('ele', $Route->current(Route\Object::ELEVATIONS_ORIGINAL));
         }
         if ($hasHeartrate) {
             $ext = $Trackpoint->addChild('extensions');
             $tpe = $ext->addChild('gpxtpx:TrackPointExtension', '', 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1');
             $tpe->addChild('gpxtpx:hr', $Trackdata->current(Trackdata\Object::HEARTRATE));
         }
     }
 }
Beispiel #2
0
 /**
  * @param \SimpleXMLElement $trackpoint
  * @param \Runalyze\Model\Trackdata\Loop $trackdataLoop
  */
 protected function addTrackdataDetailsTo(\SimpleXMLElement $trackpoint, Trackdata\Loop $trackdataLoop)
 {
     if ($this->TrackdataHas[Trackdata\Entity::CADENCE]) {
         $trackpoint->addChild('Cadence', $trackdataLoop->current(Trackdata\Entity::CADENCE));
     }
     if ($this->TrackdataHas[Trackdata\Entity::DISTANCE]) {
         $trackpoint->addChild('DistanceMeters', 1000 * $trackdataLoop->distance());
     }
     if ($this->TrackdataHas[Trackdata\Entity::HEARTRATE]) {
         $trackpoint->addChild('HeartRateBpm')->addChild('Value', $trackdataLoop->current(Trackdata\Entity::HEARTRATE));
     }
     if ($this->TrackdataHas[Trackdata\Entity::POWER] || $this->TrackdataHas[Trackdata\Entity::PACE]) {
         $TPX = $trackpoint->addChild('Extensions')->addChild('TPX', '', 'http://www.garmin.com/xmlschemas/ActivityExtension/v2');
         if ($this->TrackdataHas[Trackdata\Entity::PACE]) {
             $TPX->addChild('Speed', $this->convertPaceToSpeed($trackdataLoop->current(Trackdata\Entity::PACE)));
         }
         if ($this->TrackdataHas[Trackdata\Entity::POWER]) {
             $TPX->addChild('Watts', $trackdataLoop->current(Trackdata\Entity::POWER));
         }
     }
 }
Beispiel #3
0
 /**
  * Add track to xml
  */
 protected function setTrack()
 {
     if (!$this->Context->hasTrackdata()) {
         return;
     }
     $Starttime = $this->Context->activity()->timestamp();
     $Trackdata = new Trackdata\Loop($this->Context->trackdata());
     $Route = $this->Context->hasRoute() && $this->Context->route()->hasPositionData() ? new Route\Loop($this->Context->route()) : null;
     $hasHeartrate = $this->Context->trackdata()->has(Trackdata\Entity::HEARTRATE);
     $Track = $this->Activity->addChild('Track');
     $Track->addAttribute('StartTime', $this->timeToString($Starttime));
     do {
         $Point = $Track->addChild('pt');
         $Point->addAttribute('tm', $Trackdata->time());
         if (null !== $Route) {
             $Point->addAttribute('lat', $Route->latitude());
             $Point->addAttribute('lon', $Route->longitude());
             $Point->addAttribute('ele', $Route->current(Route\Entity::ELEVATIONS_ORIGINAL));
             $Route->nextStep();
         }
         if ($hasHeartrate) {
             $Point->addAttribute('hr', $Trackdata->current(Trackdata\Entity::HEARTRATE));
         }
     } while ($Trackdata->nextStep());
 }
 /**
  * Add track to all laps to xml 
  */
 protected function setTrack()
 {
     $Starttime = $this->Context->activity()->timestamp();
     $Trackdata = new Trackdata\Loop($this->Context->trackdata());
     $Route = new Route\Loop($this->Context->route());
     $hasElevation = $this->Context->route()->hasOriginalElevations();
     $hasHeartrate = $this->Context->trackdata()->has(Trackdata\Object::HEARTRATE);
     while ($Trackdata->nextStep()) {
         $Route->nextStep();
         if ($this->Activity->Lap[(int) floor($Trackdata->distance())]) {
             $Trackpoint = $this->Activity->Lap[(int) floor($Trackdata->distance())]->Track->addChild('Trackpoint');
             $Trackpoint->addChild('Time', $this->timeToString($Starttime + $Trackdata->time()));
             $Position = $Trackpoint->addChild('Position');
             $Position->addChild('LatitudeDegrees', $Route->latitude());
             $Position->addChild('LongitudeDegrees', $Route->longitude());
             if ($hasElevation) {
                 $Trackpoint->addChild('AltitudeMeters', $Route->current(Route\Object::ELEVATIONS_ORIGINAL));
             }
             $Trackpoint->addChild('DistanceMeters', 1000 * $Trackdata->distance());
             if ($hasHeartrate) {
                 $Heartrate = $Trackpoint->addChild('HeartRateBpm');
                 $Heartrate->addChild('Value', $Trackdata->current(Trackdata\Object::HEARTRATE));
             }
         }
     }
 }