diff --git a/CHANGELOG.md b/CHANGELOG.md index ea3a97844..b19c12d7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # UNRELEASED + - Changes from 5.12: - Profile: - New function to support relations: `process_relation`. Read more in profiles documentation. - Support of `distance` weight in foot and bicycle profiles @@ -10,8 +11,11 @@ - 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 + - Fixed some cases of sliproads pre-processing (https://github.com/Project-OSRM/osrm-backend/issues/4348) # 5.12.0 + - Changes from 5.11: - Guidance - now announcing turning onto oneways at the end of a road (e.g. onto dual carriageways) - Adds new instruction types at the exit of roundabouts and rotaries `exit roundabout` and `exit rotary`. diff --git a/features/guidance/dedicated-turn-roads.feature b/features/guidance/dedicated-turn-roads.feature index 3849509bc..dede9aab8 100644 --- a/features/guidance/dedicated-turn-roads.feature +++ b/features/guidance/dedicated-turn-roads.feature @@ -1021,5 +1021,5 @@ Feature: Slipways and Dedicated Turn Lanes When I route I should get - | waypoints | route | turns | locations | - | s,f | sab,ae,dbcf,dbcf | depart,turn right,turn slight right,arrive | s,a,c,f | + | waypoints | route | turns | locations | + | s,f | sab,dbcf,dbcf | depart,turn right,arrive | s,a,f | diff --git a/src/extractor/guidance/sliproad_handler.cpp b/src/extractor/guidance/sliproad_handler.cpp index 2bb1c2a68..c6e42817c 100644 --- a/src/extractor/guidance/sliproad_handler.cpp +++ b/src/extractor/guidance/sliproad_handler.cpp @@ -701,21 +701,18 @@ bool SliproadHandler::isValidSliproadLink(const IntersectionViewData &sliproad, const IntersectionViewData &first, const IntersectionViewData &second) const { - // If the Sliproad is not a link we don't care + // If the sliproad is not a link we don't care const auto &sliproad_data = node_based_graph.GetEdgeData(sliproad.eid); if (!sliproad_data.road_classification.IsLinkClass()) { return true; } - // otherwise neither the first road leading to the intersection we shortcut - const auto &first_road_data = node_based_graph.GetEdgeData(first.eid); - if (first_road_data.road_classification.IsLinkClass()) - { - return false; - } + // otherwise the first road leading to the intersection we shortcut + // can be a link or a usual road (ignore the check at this place) + (void)first; - // nor the second road coming from the intersection we shotcut must be links + // and the second road coming from the intersection we shortcut must be a non-link const auto &second_road_data = node_based_graph.GetEdgeData(second.eid); if (second_road_data.road_classification.IsLinkClass()) {