Really place annotations in RouteLeg and not Route

This commit is contained in:
Patrick Niklaus
2016-05-27 00:39:46 +02:00
parent 451a0d9090
commit d6de2ca71c
5 changed files with 42 additions and 20 deletions
+17 -2
View File
@@ -237,8 +237,16 @@ util::json::Object makeRouteLeg(guidance::RouteLeg leg, util::json::Array steps)
return route_leg;
}
util::json::Object makeRouteLeg(guidance::RouteLeg leg, util::json::Array steps, util::json::Object annotation)
{
util::json::Object route_leg = makeRouteLeg(std::move(leg), std::move(steps));
route_leg.values["annotation"] = std::move(annotation);
return route_leg;
}
util::json::Array makeRouteLegs(std::vector<guidance::RouteLeg> legs,
std::vector<util::json::Value> step_geometries)
std::vector<util::json::Value> step_geometries,
std::vector<util::json::Object> annotations)
{
util::json::Array json_legs;
auto step_geometry_iter = step_geometries.begin();
@@ -252,7 +260,14 @@ util::json::Array makeRouteLegs(std::vector<guidance::RouteLeg> legs,
std::back_inserter(json_steps.values), [&step_geometry_iter](guidance::RouteStep step) {
return makeRouteStep(std::move(step), std::move(*step_geometry_iter++));
});
json_legs.values.push_back(makeRouteLeg(std::move(leg), std::move(json_steps)));
if (annotations.size() > 0)
{
json_legs.values.push_back(makeRouteLeg(std::move(leg), std::move(json_steps), annotations[idx]));
}
else
{
json_legs.values.push_back(makeRouteLeg(std::move(leg), std::move(json_steps)));
}
}
return json_legs;
}