1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-01-31 09:05:14 +01:00

Fixed broken distance computation

This commit is contained in:
Martin Tůma 2018-06-20 20:15:22 +02:00
parent c5a060ed6b
commit 2352827d9b

View File

@ -69,16 +69,17 @@ static Graph filter(const Graph &g, int window)
Track::Track(const TrackData &data) : _data(data) Track::Track(const TrackData &data) : _data(data)
{ {
QVector<qreal> acceleration; QVector<qreal> acceleration;
qreal ds;
int last;
_time.append(0); _time.append(0);
_distance.append(0); _distance.append(0);
_speed.append(0); _speed.append(0);
acceleration.append(0); acceleration.append(0);
int last = 0; last = 0;
for (int i = 1; i < _data.count(); i++) { for (int i = 1; i < _data.count(); i++) {
qreal ds = _data.at(i).coordinates().distanceTo(_data.at(i-1).coordinates()); ds = _data.at(i).coordinates().distanceTo(_data.at(i-1).coordinates());
_distance.append(ds); _distance.append(ds);
if (_data.first().hasTimestamp() && _data.at(i).hasTimestamp() if (_data.first().hasTimestamp() && _data.at(i).hasTimestamp()
@ -122,13 +123,24 @@ Track::Track(const TrackData &data) : _data(data)
for (it = _stop.constBegin(); it != _stop.constEnd(); ++it) for (it = _stop.constBegin(); it != _stop.constEnd(); ++it)
_outliers.remove(*it); _outliers.remove(*it);
qreal total = 0; last = 0;
for (int i = 0; i < _data.size(); i++) { for (int i = 0; i < _data.size(); i++) {
if (_outliers.contains(i))
last++;
else
break;
}
for (int i = last + 1; i < _data.size(); i++) {
if (_outliers.contains(i)) if (_outliers.contains(i))
continue; continue;
if (!discardStopPoint(i)) if (discardStopPoint(i))
total += _distance.at(i); _distance[i] = _distance.at(last);
_distance[i] = total; else {
ds = _data.at(i).coordinates().distanceTo(
_data.at(last).coordinates());
_distance[i] = _distance.at(last) + ds;
}
last = i;
} }
} }