Don't pass down unsnapped coordinates. All information is already there

This commit is contained in:
Patrick Niklaus
2016-03-07 18:59:39 +01:00
parent f36037ebf2
commit 5e5f72ae57
6 changed files with 19 additions and 36 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ class MatchAPI final : public RouteAPI
auto route = MakeRoute(sub_routes[index].segment_end_coordinates,
sub_routes[index].unpacked_path_segments,
sub_routes[index].source_traversed_in_reverse,
sub_routes[index].target_traversed_in_reverse, nullptr);
sub_routes[index].target_traversed_in_reverse);
route.values["confidence"] = sub_matchings[index].confidence;
routes.values.push_back(std::move(route));
}
+5 -16
View File
@@ -37,23 +37,21 @@ class RouteAPI : public BaseAPI
}
void MakeResponse(const InternalRouteResult &raw_route,
util::json::Object &response,
const std::vector<util::Coordinate> *const locations) const
util::json::Object &response) const
{
auto number_of_routes = raw_route.has_alternative() ? 2UL : 1UL;
util::json::Array routes;
routes.values.resize(number_of_routes);
routes.values[0] =
MakeRoute(raw_route.segment_end_coordinates, raw_route.unpacked_path_segments,
raw_route.source_traversed_in_reverse, raw_route.target_traversed_in_reverse,
locations);
raw_route.source_traversed_in_reverse, raw_route.target_traversed_in_reverse);
if (raw_route.has_alternative())
{
std::vector<std::vector<PathData>> wrapped_leg(1);
wrapped_leg.front() = std::move(raw_route.unpacked_alternative);
routes.values[1] = MakeRoute(raw_route.segment_end_coordinates, wrapped_leg,
raw_route.alt_source_traversed_in_reverse,
raw_route.alt_target_traversed_in_reverse, locations);
raw_route.alt_target_traversed_in_reverse);
}
response.values["waypoints"] = BaseAPI::MakeWaypoints(raw_route.segment_end_coordinates);
response.values["routes"] = std::move(routes);
@@ -76,8 +74,7 @@ class RouteAPI : public BaseAPI
util::json::Object MakeRoute(const std::vector<PhantomNodes> &segment_end_coordinates,
std::vector<std::vector<PathData>> unpacked_path_segments,
const std::vector<bool> &source_traversed_in_reverse,
const std::vector<bool> &target_traversed_in_reverse,
const std::vector<util::Coordinate> *const locations) const
const std::vector<bool> &target_traversed_in_reverse) const
{
std::vector<guidance::RouteLeg> legs;
std::vector<guidance::LegGeometry> leg_geometries;
@@ -102,17 +99,9 @@ class RouteAPI : public BaseAPI
if (parameters.steps)
{
const auto getLoc = [](const std::vector<util::Coordinate> *const locations,
int idx) -> boost::optional<util::Coordinate>
{
if (locations)
return (*locations)[idx];
return {};
};
leg.steps = guidance::assembleSteps(
BaseAPI::facade, path_data, leg_geometry, phantoms.source_phantom,
phantoms.target_phantom, reversed_source, reversed_target,
getLoc(locations, idx), getLoc(locations, idx + 1));
phantoms.target_phantom, reversed_source, reversed_target);
;
}
+2 -3
View File
@@ -28,8 +28,7 @@ class TripAPI final : public RouteAPI
void MakeResponse(const std::vector<std::vector<NodeID>> &sub_trips,
const std::vector<InternalRouteResult> &sub_routes,
const std::vector<PhantomNode> &phantoms,
util::json::Object &response,
const std::vector<std::vector<util::Coordinate>> &coordinates) const
util::json::Object &response) const
{
auto number_of_routes = sub_trips.size();
util::json::Array routes;
@@ -40,7 +39,7 @@ class TripAPI final : public RouteAPI
auto route = MakeRoute(
sub_routes[index].segment_end_coordinates, sub_routes[index].unpacked_path_segments,
sub_routes[index].source_traversed_in_reverse,
sub_routes[index].target_traversed_in_reverse, &coordinates[index]);
sub_routes[index].target_traversed_in_reverse);
routes.values.push_back(std::move(route));
}
response.values["waypoints"] = MakeWaypoints(sub_trips, phantoms);