1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-07-16 20:04:23 +02:00

Added track statistics

This commit is contained in:
2015-10-12 01:12:12 +02:00
parent 5131a9d81d
commit 96e8415e00
15 changed files with 535 additions and 143 deletions

61
src/elevationgraph.cpp Normal file
View File

@ -0,0 +1,61 @@
#include <float.h>
#include "elevationgraph.h"
ElevationGraph::ElevationGraph()
{
_ascent = 0;
_descent = 0;
_max = -FLT_MAX;
_min = FLT_MAX;
Graph::setXLabel(tr("Distance"));
Graph::setYLabel(tr("Elevation"));
Graph::setXUnits(tr("km"));
Graph::setYUnits(tr("m"));
Graph::setXScale(0.001);
}
void ElevationGraph::loadData(const QVector<QPointF> &data)
{
qreal ascent = 0, descent = 0;
qreal min = data.at(0).y();
qreal max = data.at(0).y();
for (int i = 1; i < data.size(); i++) {
qreal cur = data.at(i).y();
qreal prev = data.at(i-1).y();
if (cur > prev)
ascent += cur - prev;
if (cur < prev)
descent += prev - cur;
if (cur > max)
max = cur;
if (cur < min)
min = cur;
}
_ascent += ascent;
_descent += descent;
_max = qMax(_max, max);
_min = qMin(_min, min);
addInfo(tr("Ascent"), QString::number((int)_ascent) + " " + _yUnits);
addInfo(tr("Descent"), QString::number((int)_descent) + " " + _yUnits);
addInfo(tr("Minimum"), QString::number((int)_min) + " " + _yUnits);
addInfo(tr("Maximum"), QString::number((int)_max) + " " + _yUnits);
Graph::loadData(data);
}
void ElevationGraph::clear()
{
_ascent = 0;
_descent = 0;
_max = -FLT_MAX;
_min = FLT_MAX;
Graph::clear();
}