mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-20 13:23:59 +00:00
[platform] add methods to fetch formatted strings
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
committed by
Konstantin Pastbin
parent
f201d0e3cd
commit
f8996feb88
@@ -3,25 +3,27 @@
|
|||||||
#include "geometry/mercator.hpp"
|
#include "geometry/mercator.hpp"
|
||||||
#include "base/logging.hpp"
|
#include "base/logging.hpp"
|
||||||
|
|
||||||
using namespace geometry;
|
#include "platform/duration.hpp"
|
||||||
using namespace location;
|
#include "platform/distance.hpp"
|
||||||
using namespace kml;
|
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
double constexpr kInvalidTimestamp = std::numeric_limits<double>::min();
|
double constexpr kInvalidTimestamp = std::numeric_limits<double>::min();
|
||||||
PointWithAltitude const kInvalidPoint = {m2::PointD::Zero(), kInvalidAltitude};
|
geometry::PointWithAltitude const kInvalidPoint = {m2::PointD::Zero(), geometry::kInvalidAltitude};
|
||||||
|
} // namespace
|
||||||
|
|
||||||
TrackStatistics::TrackStatistics()
|
TrackStatistics::TrackStatistics()
|
||||||
: m_length(0),
|
: m_length(0),
|
||||||
m_duration(0),
|
m_duration(0),
|
||||||
m_ascent(0),
|
m_ascent(0),
|
||||||
m_descent(0),
|
m_descent(0),
|
||||||
m_minElevation(kDefaultAltitudeMeters),
|
m_minElevation(geometry::kDefaultAltitudeMeters),
|
||||||
m_maxElevation(kDefaultAltitudeMeters),
|
m_maxElevation(geometry::kDefaultAltitudeMeters),
|
||||||
m_previousPoint(kInvalidPoint),
|
m_previousPoint(kInvalidPoint),
|
||||||
m_previousTimestamp(kInvalidTimestamp)
|
m_previousTimestamp(kInvalidTimestamp)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
TrackStatistics::TrackStatistics(MultiGeometry const & geometry)
|
TrackStatistics::TrackStatistics(kml::MultiGeometry const & geometry)
|
||||||
: TrackStatistics()
|
: TrackStatistics()
|
||||||
{
|
{
|
||||||
for (auto const & line : geometry.m_lines)
|
for (auto const & line : geometry.m_lines)
|
||||||
@@ -36,10 +38,10 @@ TrackStatistics::TrackStatistics(MultiGeometry const & geometry)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrackStatistics::AddGpsInfoPoint(GpsInfo const & point)
|
void TrackStatistics::AddGpsInfoPoint(location::GpsInfo const & point)
|
||||||
{
|
{
|
||||||
auto const pointWithAltitude = geometry::PointWithAltitude(mercator::FromLatLon(point.m_latitude, point.m_longitude), point.m_altitude);
|
auto const pointWithAltitude = geometry::PointWithAltitude(mercator::FromLatLon(point.m_latitude, point.m_longitude), point.m_altitude);
|
||||||
auto const altitude = Altitude(point.m_altitude);
|
auto const altitude = geometry::Altitude(point.m_altitude);
|
||||||
if (HasNoPoints())
|
if (HasNoPoints())
|
||||||
{
|
{
|
||||||
m_minElevation = altitude;
|
m_minElevation = altitude;
|
||||||
@@ -108,3 +110,34 @@ bool TrackStatistics::HasNoPoints() const
|
|||||||
{
|
{
|
||||||
return m_previousPoint == kInvalidPoint;
|
return m_previousPoint == kInvalidPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string TrackStatistics::GetFormattedLength() const
|
||||||
|
{
|
||||||
|
return platform::Distance::CreateFormatted(m_length).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string TrackStatistics::GetFormattedDuration() const
|
||||||
|
{
|
||||||
|
return platform::Duration(static_cast<int>(m_duration)).GetPlatformLocalizedString();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string TrackStatistics::GetFormattedAscent() const
|
||||||
|
{
|
||||||
|
return platform::Distance::FormatAltitude(m_ascent);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string TrackStatistics::GetFormattedDescent() const
|
||||||
|
{
|
||||||
|
return platform::Distance::FormatAltitude(m_descent);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string TrackStatistics::GetFormattedMinElevation() const
|
||||||
|
{
|
||||||
|
return platform::Distance::FormatAltitude(m_minElevation);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string TrackStatistics::GetFormattedMaxElevation() const
|
||||||
|
{
|
||||||
|
return platform::Distance::FormatAltitude(m_maxElevation);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,13 @@ struct TrackStatistics
|
|||||||
geometry::Altitude m_minElevation;
|
geometry::Altitude m_minElevation;
|
||||||
geometry::Altitude m_maxElevation;
|
geometry::Altitude m_maxElevation;
|
||||||
|
|
||||||
|
std::string GetFormattedLength() const;
|
||||||
|
std::string GetFormattedDuration() const;
|
||||||
|
std::string GetFormattedAscent() const;
|
||||||
|
std::string GetFormattedDescent() const;
|
||||||
|
std::string GetFormattedMinElevation() const;
|
||||||
|
std::string GetFormattedMaxElevation() const;
|
||||||
|
|
||||||
void AddGpsInfoPoint(location::GpsInfo const & point);
|
void AddGpsInfoPoint(location::GpsInfo const & point);
|
||||||
private:
|
private:
|
||||||
void AddPoints(Points const & points);
|
void AddPoints(Points const & points);
|
||||||
|
|||||||
Reference in New Issue
Block a user