Skip to content

Commit

Permalink
Don't use sliproad scenario if two name announcements are required
Browse files Browse the repository at this point in the history
  • Loading branch information
oxidase committed Oct 2, 2017
1 parent bc9977b commit 8f83192
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 11 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
- Exposes `use_threads_number=Number` parameter of `EngineConfig` to limit a number of threads in a TBB internal pool
- Internals
- MLD uses a unidirectional Dijkstra for 1-to-N and N-to-1 matrices
- Guidance
- don't suppress name announcements via sliproad handler
- allow a single hop intersection in sliproad handler

# 5.12.0
- Guidance
Expand Down
2 changes: 1 addition & 1 deletion features/guidance/dedicated-turn-roads.feature
Original file line number Diff line number Diff line change
Expand Up @@ -1016,7 +1016,7 @@ Feature: Slipways and Dedicated Turn Lanes
| nodes | highway | name | oneway |
| sab | primary | sab | |
| dbcef | primary | dbcef | |
| ae | primary_link | ae | yes |
| ae | primary_link | sab | yes |
| cg | primary | cg | |


Expand Down
20 changes: 10 additions & 10 deletions features/guidance/roundabout.feature
Original file line number Diff line number Diff line change
Expand Up @@ -829,16 +829,16 @@ Feature: Basic Roundabout
"""

And the ways
| nodes | highway | junction | oneway | # |
| abcda | tertiary | roundabout | | circle |
| ebds | tertiary | | | road |
| cm | tertiary | | | |
| ds | tertiary | | | road |
| rstur | tertiary | roundabout | | circle2 |
| ufghl | tertiary | | | road |
| tv | tertiary | | | |
| gi | tertiary | | yes | sliproad |
| jhik | tertiary | | | crossroad |
| nodes | highway | junction | oneway | # |
| abcda | tertiary | roundabout | | circle |
| ebds | tertiary | | | road |
| cm | tertiary | | | |
| ds | tertiary | | | road |
| rstur | tertiary | roundabout | | circle2 |
| ufghl | tertiary | | | road |
| tv | tertiary | | | |
| gi | tertiary_link | | yes | sliproad |
| jhik | tertiary | | | crossroad |


When I route I should get
Expand Down
18 changes: 18 additions & 0 deletions src/extractor/guidance/sliproad_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,24 @@ operator()(const NodeID /*nid*/, const EdgeID source_edge_id, Intersection inter
continue;
}

// Check if main road -> sliproad (non-link) -> candidate road requires two name
// announcements then don't suppress one announcement via sliproad handler
const auto main_road_name_id = node_based_graph.GetEdgeData(main_road.eid).name_id;
if (!sliproad_data.road_classification.IsLinkClass() &&
sliproad_data.name_id != EMPTY_NAMEID && main_road_name_id != EMPTY_NAMEID &&
candidate_data.name_id != EMPTY_NAMEID &&
util::guidance::requiresNameAnnounced(main_road_name_id,
sliproad_data.name_id,
name_table,
street_name_suffix_table) &&
util::guidance::requiresNameAnnounced(sliproad_data.name_id,
candidate_data.name_id,
name_table,
street_name_suffix_table))
{
continue;
}

// If the Sliproad `bd` is a link, `bc` and `cd` must not be links.
if (!isValidSliproadLink(sliproad, main_road, candidate_road))
{
Expand Down

0 comments on commit 8f83192

Please sign in to comment.