Fixes Sliproads onto a roundabout to be classified as sliproads, resolves #3540
This commit is contained in:
parent
32f63e5e0c
commit
b3483f95a7
@ -875,20 +875,20 @@ Feature: Slipways and Dedicated Turn Lanes
|
|||||||
| ab | through | trunk | yes | | |
|
| ab | through | trunk | yes | | |
|
||||||
| bx | through | trunk | yes | | |
|
| bx | through | trunk | yes | | |
|
||||||
| ac | round | primary | yes | roundabout | |
|
| ac | round | primary | yes | roundabout | |
|
||||||
| cdy | round | primary | yes | roundabout | |
|
| cdy | round | primary | yes | roundabout | |
|
||||||
| yb | round | primary | yes | roundabout | |
|
| yb | round | primary | yes | roundabout | |
|
||||||
| be | round | primary | yes | roundabout | |
|
| be | round | primary | yes | roundabout | |
|
||||||
| ea | round | primary | yes | roundabout | |
|
| ea | round | primary | yes | roundabout | |
|
||||||
| et | out | primary | yes | | the extraterrestrial |
|
| et | out | primary | yes | | the extraterrestrial |
|
||||||
| sc | | trunk_link | yes | | |
|
| sc | | trunk_link | yes | | |
|
||||||
| yx | right | trunk_link | yes | | |
|
| yx | right | trunk_link | yes | | |
|
||||||
|
|
||||||
And the relations
|
And the relations
|
||||||
| type | way:from | way:to | node:via | restriction |
|
| type | way:from | way:to | node:via | restriction |
|
||||||
| restriction | sa | ab | a | only_straight |
|
| restriction | sa | ab | a | only_straight |
|
||||||
| restriction | ab | bx | b | only_straight |
|
| restriction | ab | bx | b | only_straight |
|
||||||
| restriction | yb | be | b | only_straight |
|
| restriction | yb | be | b | only_straight |
|
||||||
|
|
||||||
When I route I should get
|
When I route I should get
|
||||||
| waypoints | route | turns | locations |
|
| waypoints | route | turns | locations |
|
||||||
| z,t | through,out,out | depart,roundabout-exit-2,arrive | |
|
| z,t | through,,out,out | depart,off ramp slight right,round-exit-3,arrive | z,s,c,t |
|
||||||
|
@ -271,7 +271,8 @@ operator()(const NodeID /*nid*/, const EdgeID source_edge_id, Intersection inter
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The turn off of the Sliproad has to be obvious and a narrow turn
|
// The turn off of the Sliproad has to be obvious and a narrow turn and must not be a
|
||||||
|
// roundabout
|
||||||
{
|
{
|
||||||
const auto index = findObviousTurn(sliproad_edge, target_intersection);
|
const auto index = findObviousTurn(sliproad_edge, target_intersection);
|
||||||
|
|
||||||
@ -288,6 +289,13 @@ operator()(const NodeID /*nid*/, const EdgeID source_edge_id, Intersection inter
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto &onto_data = node_based_graph.GetEdgeData(onto.eid);
|
||||||
|
|
||||||
|
if (onto_data.roundabout)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for curvature. Depending on the turn's direction at `c`. Scenario for right turn:
|
// Check for curvature. Depending on the turn's direction at `c`. Scenario for right turn:
|
||||||
|
Loading…
Reference in New Issue
Block a user