fix roundabouts with traffic lights
This commit is contained in:
parent
abde215bc3
commit
8831ca2f32
@ -437,3 +437,42 @@ Feature: Basic Roundabout
|
|||||||
When I route I should get
|
When I route I should get
|
||||||
| waypoints | route | turns |
|
| waypoints | route | turns |
|
||||||
| a,k | massachusetts,massachusetts,massachusetts,massachusetts | depart,sheridan circle-exit-2,dupont circle-exit-1,arrive |
|
| a,k | massachusetts,massachusetts,massachusetts,massachusetts | depart,sheridan circle-exit-2,dupont circle-exit-1,arrive |
|
||||||
|
|
||||||
|
Scenario: Enter and Exit - Traffic Signals
|
||||||
|
Given the node map
|
||||||
|
| | | a | | |
|
||||||
|
| | i | b | l | |
|
||||||
|
| h | g | | c | d |
|
||||||
|
| | j | e | k | |
|
||||||
|
| | | f | | |
|
||||||
|
|
||||||
|
And the nodes
|
||||||
|
| node | highway |
|
||||||
|
| i | traffic_signals |
|
||||||
|
| j | traffic_signals |
|
||||||
|
| k | traffic_signals |
|
||||||
|
| l | traffic_signals |
|
||||||
|
|
||||||
|
And the ways
|
||||||
|
| nodes | junction |
|
||||||
|
| ab | |
|
||||||
|
| cd | |
|
||||||
|
| ef | |
|
||||||
|
| gh | |
|
||||||
|
| bigjekclb | roundabout |
|
||||||
|
|
||||||
|
When I route I should get
|
||||||
|
| waypoints | route | turns |
|
||||||
|
| a,d | ab,cd,cd | depart,roundabout-exit-3,arrive |
|
||||||
|
| a,f | ab,ef,ef | depart,roundabout-exit-2,arrive |
|
||||||
|
| a,h | ab,gh,gh | depart,roundabout-exit-1,arrive |
|
||||||
|
| d,f | cd,ef,ef | depart,roundabout-exit-3,arrive |
|
||||||
|
| d,h | cd,gh,gh | depart,roundabout-exit-2,arrive |
|
||||||
|
| d,a | cd,ab,ab | depart,roundabout-exit-1,arrive |
|
||||||
|
| f,h | ef,gh,gh | depart,roundabout-exit-3,arrive |
|
||||||
|
| f,a | ef,ab,ab | depart,roundabout-exit-2,arrive |
|
||||||
|
| f,d | ef,cd,cd | depart,roundabout-exit-1,arrive |
|
||||||
|
| h,a | gh,ab,ab | depart,roundabout-exit-3,arrive |
|
||||||
|
| h,d | gh,cd,cd | depart,roundabout-exit-2,arrive |
|
||||||
|
| h,f | gh,ef,ef | depart,roundabout-exit-1,arrive |
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "engine/guidance/post_processing.hpp"
|
|
||||||
#include "extractor/guidance/turn_instruction.hpp"
|
#include "extractor/guidance/turn_instruction.hpp"
|
||||||
|
#include "engine/guidance/post_processing.hpp"
|
||||||
|
|
||||||
#include "engine/guidance/assemble_steps.hpp"
|
#include "engine/guidance/assemble_steps.hpp"
|
||||||
#include "engine/guidance/lane_processing.hpp"
|
#include "engine/guidance/lane_processing.hpp"
|
||||||
@ -535,7 +535,6 @@ std::vector<RouteStep> anticipateLaneChangeForRoundabouts(std::vector<RouteStep>
|
|||||||
};
|
};
|
||||||
|
|
||||||
forEachRoundabout(begin(steps), end(steps), anticipate_lanes_in_roundabout);
|
forEachRoundabout(begin(steps), end(steps), anticipate_lanes_in_roundabout);
|
||||||
|
|
||||||
return steps;
|
return steps;
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
@ -628,6 +627,10 @@ std::vector<RouteStep> postProcess(std::vector<RouteStep> steps)
|
|||||||
has_entered_roundabout = false;
|
has_entered_roundabout = false;
|
||||||
on_roundabout = false;
|
on_roundabout = false;
|
||||||
}
|
}
|
||||||
|
else if (on_roundabout && step_index + 1 < steps.size())
|
||||||
|
{
|
||||||
|
steps[step_index + 1].maneuver.exit = step.maneuver.exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// unterminated roundabout
|
// unterminated roundabout
|
||||||
|
Loading…
Reference in New Issue
Block a user