Changes the processing order in the edge based graph factory. Instead of iterating over all outgoing edges in order, we compute the edge expanded graph in the order of intersections. This allows to remember intersection shapes and re-use them for all possible ingoing edges. Also: use low accuracry mode for intersections degree 2 intersections We can use lower accuracy here, since the `bearing` after the turn is not as relevant for off-route detection. Getting lost is near impossible here.
193 lines
5.9 KiB
Gherkin
193 lines
5.9 KiB
Gherkin
@routing @guidance @perceived-angles
|
|
Feature: Simple Turns
|
|
|
|
Background:
|
|
Given the profile "car"
|
|
Given a grid size of 5 meters
|
|
|
|
Scenario: Turning into splitting road
|
|
Given the node map
|
|
"""
|
|
a
|
|
b
|
|
^
|
|
/ \
|
|
c d
|
|
|\
|
|
| e
|
|
|
|
|
f
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | name | highway | oneway |
|
|
| ab | road | primary | no |
|
|
| bc | road | primary | yes |
|
|
| fdb | road | primary | yes |
|
|
| de | turn | primary | no |
|
|
|
|
When I route I should get
|
|
| waypoints | turns | route |
|
|
| f,a | depart,arrive | road,road |
|
|
| e,a | depart,turn slight right,arrive | turn,road,road |
|
|
|
|
Scenario: Turning into splitting road
|
|
Given the node map
|
|
"""
|
|
a
|
|
g-b
|
|
/\
|
|
/ \
|
|
c d
|
|
|\
|
|
| e
|
|
|
|
|
f
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | name | highway | oneway |
|
|
| ab | road | primary | no |
|
|
| bc | road | primary | yes |
|
|
| fdb | road | primary | yes |
|
|
| de | turn | primary | no |
|
|
| bg | left | primary | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | turns | route |
|
|
| f,a | depart,arrive | road,road |
|
|
| e,a | depart,turn slight right,arrive | turn,road,road |
|
|
| e,g | depart,turn slight right,turn left,arrive | turn,road,left,left |
|
|
| f,g | depart,turn left,arrive | road,left,left |
|
|
| f,c | depart,continue uturn,arrive | road,road,road |
|
|
|
|
Scenario: Middle Island
|
|
Given the node map
|
|
"""
|
|
a
|
|
|
|
b
|
|
c h
|
|
|
|
|
|
|
|
|
|
d g
|
|
e
|
|
|
|
f
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | name | oneway |
|
|
| ab | road | no |
|
|
| ef | road | no |
|
|
| bcde | road | yes |
|
|
| eghb | road | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | turns | route |
|
|
| a,f | depart,arrive | road,road |
|
|
| c,f | depart,arrive | road,road |
|
|
| f,a | depart,arrive | road,road |
|
|
| g,a | depart,arrive | road,road |
|
|
|
|
Scenario: Middle Island Over Bridge
|
|
Given the node map
|
|
"""
|
|
a
|
|
|
|
|
.b.
|
|
c h
|
|
| |
|
|
| |
|
|
1 2
|
|
| |
|
|
d g
|
|
'e'
|
|
|
|
|
f
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | name | oneway |
|
|
| ab | road | no |
|
|
| ef | road | no |
|
|
| bc | road | yes |
|
|
| cd | bridge | yes |
|
|
| de | road | yes |
|
|
| eg | road | yes |
|
|
| gh | bridge | yes |
|
|
| hb | road | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | turns | route |
|
|
| a,f | depart,arrive | road,road |
|
|
| c,f | depart,new name straight,arrive | bridge,road,road |
|
|
| 1,f | depart,new name straight,arrive | bridge,road,road |
|
|
| f,a | depart,arrive | road,road |
|
|
| g,a | depart,new name straight,arrive | bridge,road,road |
|
|
| 2,a | depart,new name straight,arrive | bridge,road,road |
|
|
|
|
@negative
|
|
Scenario: Don't Collapse Places:
|
|
Given the node map
|
|
"""
|
|
h
|
|
g
|
|
|
|
|
|
|
|
|
|
a b e f
|
|
|
|
|
|
|
|
|
|
c
|
|
d
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | name | oneway |
|
|
| ab | place | no |
|
|
| cd | bottom | no |
|
|
| ef | place | no |
|
|
| gh | top | no |
|
|
| bcegb | place | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | turns | route |
|
|
| a,d | depart,turn right,arrive | place,bottom,bottom |
|
|
| a,f | depart,continue left,continue right,arrive | place,place,place,place |
|
|
| d,f | depart,turn right,continue right,arrive | bottom,place,place,place |
|
|
| d,h | depart,turn right,continue left,turn right,arrive | bottom,place,place,top,top |
|
|
|
|
@bug @not-sorted @3179
|
|
Scenario: Adjusting road angles to not be sorted
|
|
Given the node map
|
|
"""
|
|
g
|
|
|
|
|
|
|
|
|
|
|
_e - - - - - - - - - f
|
|
/
|
|
a - - - - -b <
|
|
i \ _
|
|
h c - - - - - - - - - d
|
|
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | name | oneway |
|
|
| ab | road | no |
|
|
| febcd | road | yes |
|
|
| ge | in | yes |
|
|
| eh | right | yes |
|
|
| ei | left | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | route |
|
|
| g,a | in,road,road |
|