MCPcopy Create free account
hub / github.com/comaps/comaps / AddGpsInfoPoint

Method AddGpsInfoPoint

libs/map/track_statistics.cpp:45–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43}
44
45void TrackStatistics::AddGpsInfoPoint(location::GpsInfo const & point)
46{
47 auto const pointWithAltitude =
48 geometry::PointWithAltitude(mercator::FromLatLon(point.m_latitude, point.m_longitude), point.m_altitude);
49 auto const altitude = geometry::Altitude(point.m_altitude);
50 if (HasNoPoints())
51 {
52 m_minElevation = altitude;
53 m_maxElevation = altitude;
54 m_previousPoint = pointWithAltitude;
55 m_previousTimestamp = point.m_timestamp;
56 return;
57 }
58
59 m_minElevation = std::min(m_minElevation, altitude);
60 m_maxElevation = std::max(m_maxElevation, altitude);
61
62 auto const deltaAltitude = altitude - m_previousPoint.GetAltitude();
63 if (deltaAltitude > 0)
64 m_ascent += deltaAltitude;
65 else
66 m_descent -= deltaAltitude;
67 m_length += mercator::DistanceOnEarth(m_previousPoint.GetPoint(), pointWithAltitude.GetPoint());
68 m_duration += point.m_timestamp - m_previousTimestamp;
69
70 m_previousPoint = pointWithAltitude;
71 m_previousTimestamp = point.m_timestamp;
72}
73
74void TrackStatistics::AddPoints(Points const & points)
75{

Callers 2

AddMethod · 0.80
UNIT_TESTFunction · 0.80

Calls 5

PointWithAltitudeClass · 0.50
FromLatLonFunction · 0.50
DistanceOnEarthFunction · 0.50
GetAltitudeMethod · 0.45
GetPointMethod · 0.45

Tested by 1

UNIT_TESTFunction · 0.64