Remove roundabout skip as no leavesRoundabout steps after postProcess
This commit is contained in:
parent
858ec2e655
commit
dd009322de
@ -844,5 +844,5 @@ Feature: Basic Roundabout
|
|||||||
|
|
||||||
When I route I should get
|
When I route I should get
|
||||||
| from | to | route | turns | distance |
|
| from | to | route | turns | distance |
|
||||||
| e | k | ebds,ebds,ds,ufghl,gi,jhik,jhik | depart,rotary-exit-1,rotary-exit-1,rstur-exit-2,invalid right,turn right,arrive | 189.1m |
|
| e | k | ebds,ebds,ds,ufghl,jhik,jhik | depart,rotary-exit-1,rotary-exit-1,rstur-exit-2,turn right,arrive | 189.1m |
|
||||||
| 1 | k | ebds,ds,ufghl,gi,jhik,jhik | depart,rotary-exit-1,rstur-exit-2,invalid right,turn right,arrive | 159.1m |
|
| 1 | k | ebds,ds,ufghl,jhik,jhik | depart,rotary-exit-1,rstur-exit-2,turn right,arrive | 159.1m |
|
||||||
|
@ -315,22 +315,6 @@ RouteSteps collapseTurnInstructions(RouteSteps steps)
|
|||||||
if (entersRoundabout(current_step->maneuver.instruction) ||
|
if (entersRoundabout(current_step->maneuver.instruction) ||
|
||||||
staysOnRoundabout(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?
|
// are we done for good?
|
||||||
if (current_step + 1 == steps.end())
|
if (current_step + 1 == steps.end())
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user