don't emit invalid on sliproads with incompatible modes
This commit is contained in:
parent
7cbb1807e7
commit
6cf99c886f
@ -13,6 +13,11 @@
|
|||||||
- Debug Tiles
|
- Debug Tiles
|
||||||
- Added support for turn penalties
|
- Added support for turn penalties
|
||||||
|
|
||||||
|
# 5.4.2
|
||||||
|
- Changes from 5.4.1
|
||||||
|
- Bugfixes
|
||||||
|
- #3032 Fixed a bug that could result in emitting `invalid` as an instruction type on sliproads with mode changes
|
||||||
|
|
||||||
# 5.4.1
|
# 5.4.1
|
||||||
- Changes from 5.4.0
|
- Changes from 5.4.0
|
||||||
- Bugfixes
|
- Bugfixes
|
||||||
|
33
features/guidance/bicycle-sliproads.feature
Normal file
33
features/guidance/bicycle-sliproads.feature
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
@routing @bicycle @mode
|
||||||
|
Feature: Bike - Mode flag
|
||||||
|
|
||||||
|
Background:
|
||||||
|
Given the profile "bicycle"
|
||||||
|
Given a grid size of 5 meters
|
||||||
|
|
||||||
|
Scenario: Bike Sliproad
|
||||||
|
Given the node map
|
||||||
|
"""
|
||||||
|
i
|
||||||
|
a b - c-d
|
||||||
|
` |
|
||||||
|
g-e-h
|
||||||
|
|
|
||||||
|
|
|
||||||
|
f
|
||||||
|
"""
|
||||||
|
|
||||||
|
And the nodes
|
||||||
|
| node | highway |
|
||||||
|
| c | traffic_signals |
|
||||||
|
|
||||||
|
And the ways
|
||||||
|
| nodes | highway | name | oneway:bicycle |
|
||||||
|
| abcd | cycleway | street | |
|
||||||
|
| eb | path | | yes |
|
||||||
|
| icef | tertiary | road | |
|
||||||
|
| geh | secondary | street | |
|
||||||
|
|
||||||
|
When I route I should get
|
||||||
|
| waypoints | route | turns |
|
||||||
|
| a,f | street,{highway:path},road,road | depart,turn right,turn right,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"
|
||||||
@ -838,6 +838,11 @@ std::vector<RouteStep> collapseTurns(std::vector<RouteStep> steps)
|
|||||||
::osrm::util::guidance::getTurnDirection(angle);
|
::osrm::util::guidance::getTurnDirection(angle);
|
||||||
invalidateStep(steps[step_index]);
|
invalidateStep(steps[step_index]);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//the sliproad turn is incompatible. So we handle it as a turn
|
||||||
|
steps[one_back_index].maneuver.instruction.type = TurnType::Turn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Due to empty segments, we can get name-changes from A->A
|
// Due to empty segments, we can get name-changes from A->A
|
||||||
|
Loading…
Reference in New Issue
Block a user