/** * Calculate stride length for activity * Use this method if trackdata is not available * @param \Runalyze\Model\Activity\Object $activity * @return int [cm] */ public static function forActivity(Activity\Object $activity) { if ($activity->cadence() > 0 && $activity->duration() > 0) { return round($activity->distance() * 1000 * 100 / ($activity->cadence() * 2 / 60 * $activity->duration())); } return 0; }
/** * Calculate stride length */ protected function calculateStrideLength() { if ($this->Object->sportid() == Configuration::General()->runningSport()) { if (null !== $this->Trackdata && $this->Trackdata->has(Model\Trackdata\Object::CADENCE)) { $Calculator = new \Runalyze\Calculation\StrideLength\Calculator($this->Trackdata); $Calculator->calculate(); $this->Object->set(Object::STRIDE_LENGTH, $Calculator->average()); } elseif ($this->Object->cadence() > 0) { $this->Object->set(Object::STRIDE_LENGTH, \Runalyze\Calculation\StrideLength\Calculator::forActivity($this->Object)); } } }