/** * Calculate distance */ private function setDistanceFromGPSdata() { if (!empty($this->gps['latitude']) && !empty($this->gps['longitude']) && empty($this->gps['km'])) { $num = count($this->gps['latitude']); $this->gps['km'] = array(0); $lastDistance = 0; for ($i = 1; $i < $num; ++$i) { $step = round(Runalyze\Model\Route\Object::gpsDistance($this->gps['latitude'][$i - 1], $this->gps['longitude'][$i - 1], $this->gps['latitude'][$i], $this->gps['longitude'][$i]), ParserAbstract::DISTANCE_PRECISION); $this->gps['km'][] = $lastDistance + $step; $lastDistance += $step; } $this->TrainingObject->setArrayDistance($this->gps['km']); $this->TrainingObject->setDistance(end($this->gps['km'])); } }
/** * Set GPS data */ protected function setGPSarrays() { $this->removeInvalidEntriesFromGPSarrays(); if (empty($this->gps['pace']) && !empty($this->gps['time_in_s']) && !empty($this->gps['km'])) { $this->setPaceFromDistanceAndTime(); } $this->TrainingObject->setArrayTime($this->gps['time_in_s']); $this->TrainingObject->setArrayDistance($this->gps['km']); $this->TrainingObject->setArrayLatitude($this->gps['latitude']); $this->TrainingObject->setArrayLongitude($this->gps['longitude']); $this->TrainingObject->setArrayAltitude($this->gps['altitude']); $this->TrainingObject->setArrayHeartrate($this->gps['heartrate']); $this->TrainingObject->setArrayPace($this->gps['pace']); $this->TrainingObject->setArrayCadence($this->gps['rpm']); $this->TrainingObject->setArrayPower($this->gps['power']); $this->TrainingObject->setArrayTemperature($this->gps['temp']); $this->TrainingObject->setArrayGroundContact($this->gps['groundcontact']); $this->TrainingObject->setArrayVerticalOscillation($this->gps['oscillation']); $this->TrainingObject->setArrayHRV($this->gps['hrv']); $this->setValuesFromArraysIfEmpty(); }