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