This is an old revision of the document!
The following statistics are computed from various track. The meanings and definitions of each statistic is as follows:
Notes:
Example loop to calculate moving time and moving distance:
// Uses some trackwork conventions for methods, reader is encouraged to translate // to the appropriate idiom for their environment. // // Points are assumed to be order in time such that time(pt[0]) < time(pt[1]) // int movingTime = 0; float movingDistance = 0.0; for( int i = 1; i < GetNPoints(); i++ ) { CAgVertex v1 = GetAgVertexAt(i); CAgVertex prev = GetAgVertexAt(i-1); time_t seconds = GetUTCTimeAtIndex(i).GetTimeT(); time_t prevSeconds = GetUTCTimeAtIndex(i-1).GetTimeT(); float distanceDelta = v1.Distance(prev); int prevTimeDelta = CAgTime::GetTimeDifferenceSeconds(GetUTCTimeAtIndex(i), GetUTCTimeAtIndex(i-1)); float tmpspeed = (prevDelta > 0) ? distance/prevDelta : 0; if( (prevDelta <= idleTime) && (tmpspeed >= idleFPS) ) { movingTime += prevTimeDelta; movingDistance += distanceDelta; } printf( "Moving seconds: %d\n", movingTime ); printf( "Moving feet : %d\n", movingDistance ); }