announce mode changes

This commit is contained in:
Emil Tin 2014-08-16 12:27:26 +02:00
parent 6e364ff0ba
commit feaf8711d3
2 changed files with 51 additions and 32 deletions

View File

@ -85,11 +85,18 @@ void DescriptionFactory::AppendSegment(const FixedPointCoordinate &coordinate,
return; return;
} }
// make sure mode changes are announced, even when there otherwise is no turn
const TurnInstruction turn =
(TurnInstruction::NoTurn == path_point.turn_instruction &&
path_description.front().travel_mode != path_point.travel_mode &&
path_point.segment_duration>0) ? TurnInstruction::GoStraight
: path_point.turn_instruction;
path_description.emplace_back(coordinate, path_description.emplace_back(coordinate,
path_point.name_id, path_point.name_id,
path_point.segment_duration, path_point.segment_duration,
0.f, 0.f,
path_point.turn_instruction, turn,
path_point.travel_mode); path_point.travel_mode);
} }

View File

@ -35,6 +35,19 @@ Feature: Testbot - Mode flag
| b | d | bc,cd | head,left,destination | 2,1 | | b | d | bc,cd | head,left,destination | 2,1 |
| a | f | ab,bc,cd,de,ef | head,right,left,straight,straight,destination | 1,2,1,1,1 | | a | f | ab,bc,cd,de,ef | head,right,left,straight,straight,destination | 1,2,1,1,1 |
Scenario: Testbot - Different modes in each direction, start between nodes
Given the node map
| a | 1 | b |
And the ways
| nodes | highway |
| ab | river |
When I route I should get
| from | to | route | modes |
| 1 | b | ab | 3 |
| 1 | a | ab | 4 |
Scenario: Testbot - Modes for each direction Scenario: Testbot - Modes for each direction
Given the node map Given the node map
| | | | | | | d | | | | | | | | d |
@ -123,6 +136,20 @@ Feature: Testbot - Mode flag
| b | a | ab | 6 | | b | a | ab | 6 |
| a | b | | | | a | b | | |
@via
Scenario: Testbot - Mode should be set at via points
Given the node map
| a | 1 | b |
And the ways
| nodes | highway |
| ab | river |
When I route I should get
| waypoints | route | modes | turns |
| a,1,b | ab,ab | 3,3 | head,via,destination |
| b,1,a | ab,ab | 4,4 | head,via,destination |
@via @via
Scenario: Testbot - Modes and via point at dead end Scenario: Testbot - Modes and via point at dead end
Given the node map Given the node map
@ -135,9 +162,9 @@ Feature: Testbot - Mode flag
| bd | steps | | bd | steps |
When I route I should get When I route I should get
| waypoints | route | modes | turns | | waypoints | route | modes |
| a,d,c | abc,bd,bd,bd,abc | 1,5,5,6,1 | head,right,via,u_turn,right,destination | | a,d,c | abc,bd,bd,bd,abc | 1,5,5,6,1 |
| c,d,a | abc,bd,bd,bd,abc | 1,5,5,6,1 | head,left,via,u_turn,left,destination | | c,d,a | abc,bd,bd,bd,abc | 1,5,5,6,1 |
@via @via
Scenario: Testbot - Modes and via point at river Scenario: Testbot - Modes and via point at river
@ -183,25 +210,7 @@ Feature: Testbot - Mode flag
| a | b | | | | a | b | | |
| b | a | ab | 4 | | b | a | ab | 4 |
Scenario: Testbot - Starting at a tricky node, 1m Scenario: Testbot - Starting at a tricky node
Given a grid size of 1 meters
Given the node map
| a | 1 | | | |
| | 2 | b | | c |
| | 3 | | | |
And the ways
| nodes | highway |
| ab | river |
| bc | primary |
When I route I should get
| from | to | route | modes |
| 1 | a | ab | 4 |
| 2 | a | ab | 4 |
| 3 | a | ab | 4 |
Scenario: Testbot - Starting at a tricky node, 100m
Given the node map Given the node map
| | a | | | | | | a | | | |
| | | | b | c | | | | | b | c |
@ -215,15 +224,18 @@ Feature: Testbot - Mode flag
| from | to | route | modes | | from | to | route | modes |
| b | a | ab | 4 | | b | a | ab | 4 |
Scenario: Testbot - Mode changes on straight way Scenario: Testbot - Mode changes on straight way without name change
Given the node map Given the node map
| a | b | c | | a | 1 | b | 2 | c |
And the ways And the ways
| nodes | highway | name | | nodes | highway | name |
| ab | primary |Street | | ab | primary | Avenue |
| bc | river |Street | | bc | river | Avenue |
When I route I should get When I route I should get
| from | to | route | modes | turns | | from | to | route | modes | turns |
| a | c | Street,Street | 1,4 | head,straight,destination | | a | c | Avenue,Avenue | 1,3 | head,straight,destination |
| c | a | Avenue,Avenue | 3,1 | head,straight,destination |
| 1 | 2 | Avenue,Avenue | 1,3 | head,straight,destination |
| 2 | 1 | Avenue,Avenue | 3,1 | head,straight,destination |