Use global uturns parameter.

Instead of previously per-via settings like uturns=true;false;true;; it
now only supports a global setting uturns=true.
This commit is contained in:
Patrick Niklaus
2016-03-18 23:54:03 +01:00
parent 253496c7ee
commit e10e8910f3
6 changed files with 21 additions and 45 deletions
+1 -13
View File
@@ -135,19 +135,7 @@ InternalRouteResult TripPlugin::ComputeRoute(const std::vector<PhantomNode> &sna
}
BOOST_ASSERT(min_route.segment_end_coordinates.size() == trip.size());
std::vector<boost::optional<bool>> uturns;
if (parameters.uturns.size() > 0)
{
uturns.resize(trip.size() + 1);
std::transform(trip.begin(), trip.end(), uturns.begin(), [&parameters](const NodeID idx)
{
return parameters.uturns[idx];
});
BOOST_ASSERT(uturns.size() > 0);
uturns.back() = parameters.uturns[trip.front()];
}
shortest_path(min_route.segment_end_coordinates, uturns, min_route);
shortest_path(min_route.segment_end_coordinates, parameters.uturns, min_route);
BOOST_ASSERT_MSG(min_route.shortest_path_length < INVALID_EDGE_WEIGHT, "unroutable route");
return min_route;
+1 -3
View File
@@ -25,9 +25,7 @@ std::string getWrongOptionHelp(const engine::api::RouteParameters &parameters)
constrainParamSize(PARAMETER_SIZE_MISMATCH_MSG, "bearings",
parameters.bearings, coord_size, help) ||
constrainParamSize(PARAMETER_SIZE_MISMATCH_MSG, "radiuses",
parameters.radiuses, coord_size, help) ||
constrainParamSize(PARAMETER_SIZE_MISMATCH_MSG, "uturns",
parameters.uturns, coord_size, help);
parameters.radiuses, coord_size, help);
if (!param_size_mismatch && parameters.coordinates.size() < 2)
{