Remove roundabout skip as no leavesRoundabout steps after postProcess

This commit is contained in:
Michael Krasnyk 2017-05-31 18:33:14 +02:00 committed by Patrick Niklaus
parent cc6923bfa9
commit ceb0e31659

View File

@ -315,22 +315,6 @@ RouteSteps collapseTurnInstructions(RouteSteps steps)
if (entersRoundabout(current_step->maneuver.instruction) ||
staysOnRoundabout(current_step->maneuver.instruction))
{
// Skip over all instructions within the roundabout or check for
// special case from setUpRoundabout of a single Enter{Rotary,..} instruction
auto next_exit_or_enter =
std::find_if(current_step + 1, std::prev(steps.end()), [](const auto &step) {
return leavesRoundabout(step.maneuver.instruction) ||
entersRoundabout(step.maneuver.instruction);
});
bool is_touching_or_crossing_roundabout =
!leavesRoundabout(next_exit_or_enter->maneuver.instruction) &&
current_step->maneuver.exit == 1;
// If the instruction touches or crosses the roundabout then the current instruction
// is also an exit one otherwise move the current step to the corresponding exit
current_step = is_touching_or_crossing_roundabout ? current_step : next_exit_or_enter;
// are we done for good?
if (current_step + 1 == steps.end())
break;