30 lines
949 B
C++
30 lines
949 B
C++
#include "engine/guidance/assemble_route.hpp"
|
|
|
|
#include <numeric>
|
|
|
|
namespace osrm::engine::guidance
|
|
{
|
|
|
|
Route assembleRoute(const std::vector<RouteLeg> &route_legs)
|
|
{
|
|
auto distance =
|
|
std::accumulate(route_legs.begin(),
|
|
route_legs.end(),
|
|
0.,
|
|
[](const double sum, const RouteLeg &leg) { return sum + leg.distance; });
|
|
auto duration =
|
|
std::accumulate(route_legs.begin(),
|
|
route_legs.end(),
|
|
0.,
|
|
[](const double sum, const RouteLeg &leg) { return sum + leg.duration; });
|
|
auto weight =
|
|
std::accumulate(route_legs.begin(),
|
|
route_legs.end(),
|
|
0.,
|
|
[](const double sum, const RouteLeg &leg) { return sum + leg.weight; });
|
|
|
|
return Route{distance, duration, weight};
|
|
}
|
|
|
|
} // namespace osrm::engine::guidance
|