Merge branch 'develop' of https://github.com/DennisOSRM/Project-OSRM into develop
This commit is contained in:
commit
a82c9d55b3
@ -4,7 +4,7 @@ Feature: Bike - Handle ferry routes
|
||||
Background:
|
||||
Given the speedprofile "bicycle"
|
||||
|
||||
Scenario: Bike - Use a ferry route
|
||||
Scenario: Bike - Ferry route
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
@ -27,4 +27,109 @@ Feature: Bike - Handle ferry routes
|
||||
| c | f | cde,efg |
|
||||
| c | g | cde,efg |
|
||||
|
||||
Scenario: Bike - Ferry duration, single node
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
| | | e | f |
|
||||
| | | g | h |
|
||||
| | | i | j |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| ab | primary | | | |
|
||||
| cd | primary | | | |
|
||||
| ef | primary | | | |
|
||||
| gh | primary | | | |
|
||||
| ij | primary | | | |
|
||||
| bc | | ferry | yes | 0:01 |
|
||||
| be | | ferry | yes | 0:10 |
|
||||
| bg | | ferry | yes | 1:00 |
|
||||
| bi | | ferry | yes | 10:00 |
|
||||
|
||||
Scenario: Bike - Ferry duration, multiple nodes
|
||||
Given the node map
|
||||
| x | | | | | y |
|
||||
| | a | b | c | d | |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yd | primary | | | |
|
||||
| abcd | | ferry | yes | 1:00 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | d | abcd | 3600s +-1 |
|
||||
| d | a | abcd | 3600s +-1 |
|
||||
|
||||
Scenario: Bike - Ferry duration, connected routes
|
||||
Given the node map
|
||||
| x | | | | | | | | y |
|
||||
| | a | b | c | d | e | f | g | |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yg | primary | | | |
|
||||
| abcd | | ferry | yes | 0:30 |
|
||||
| defg | | ferry | yes | 0:30 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | g | abcd,defg | 3600s +-1 |
|
||||
| g | a | defg,abcd | 3600s +-1 |
|
||||
|
||||
Scenario: Bike - Prefer road when faster than ferry
|
||||
Given the node map
|
||||
| x | a | b | c | |
|
||||
| | | | | d |
|
||||
| y | g | f | e | |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yg | primary | | | |
|
||||
| xy | primary | | | |
|
||||
| abcd | | ferry | yes | 0:01 |
|
||||
| defg | | ferry | yes | 0:01 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | g | xa,xy,yg | 60s +-25% |
|
||||
| g | a | yg,xy,xa | 60s +-25% |
|
||||
|
||||
Scenario: Bike - Long winding ferry route
|
||||
Given the node map
|
||||
| x | | b | | d | | f | | y |
|
||||
| | a | | c | | e | | g | |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yg | primary | | | |
|
||||
| abcdefg | | ferry | yes | 6:30 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | g | abcdefg | 23400s +-1 |
|
||||
| g | a | abcdefg | 23400s +-1 |
|
||||
|
||||
Scenario: Bike - Ferry duration, individual parts
|
||||
Given the node map
|
||||
| x | y | | z | | | v |
|
||||
| a | b | | c | | | d |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yb | primary | | | |
|
||||
| zc | primary | | | |
|
||||
| vd | primary | | | |
|
||||
| abcd | | ferry | yes | 1:00 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | d | abcd | 3600s +-1 |
|
||||
| a | b | abcd | 600s +-1 |
|
||||
| b | c | abcd | 1200s +-1 |
|
||||
| c | d | abcd | 1800s +-1 |
|
||||
|
60
features/testbot/ferry.feature
Normal file
60
features/testbot/ferry.feature
Normal file
@ -0,0 +1,60 @@
|
||||
@routing @testbot @ferry
|
||||
Feature: Testbot - Handle ferry routes
|
||||
|
||||
Background:
|
||||
Given the speedprofile "testbot"
|
||||
|
||||
Scenario: Testbot - Ferry duration, single node
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
| | | e | f |
|
||||
| | | g | h |
|
||||
| | | i | j |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| ab | primary | | | |
|
||||
| cd | primary | | | |
|
||||
| ef | primary | | | |
|
||||
| gh | primary | | | |
|
||||
| ij | primary | | | |
|
||||
| bc | | ferry | yes | 0:01 |
|
||||
| be | | ferry | yes | 0:10 |
|
||||
| bg | | ferry | yes | 1:00 |
|
||||
| bi | | ferry | yes | 10:00 |
|
||||
|
||||
Scenario: Testbot - Ferry duration, multiple nodes
|
||||
Given the node map
|
||||
| x | | | | | y |
|
||||
| | a | b | c | d | |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yd | primary | | | |
|
||||
| abcd | | ferry | yes | 1:00 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | d | abcd | 3600s +-1 |
|
||||
| d | a | abcd | 3600s +-1 |
|
||||
|
||||
Scenario: Bike - Ferry duration, individual parts
|
||||
Given the node map
|
||||
| x | y | | z | | | v |
|
||||
| a | b | | c | | | d |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
| xa | primary | | | |
|
||||
| yb | primary | | | |
|
||||
| zc | primary | | | |
|
||||
| vd | primary | | | |
|
||||
| abcd | | ferry | yes | 1:00 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | time |
|
||||
| a | d | abcd | 3600s +-1 |
|
||||
| a | b | abcd | 600s +-1 |
|
||||
| b | c | abcd | 1200s +-1 |
|
||||
| c | d | abcd | 1800s +-1 |
|
@ -43,9 +43,18 @@ function way_function (way, numberOfNodesInWay)
|
||||
local highway = way.tags:Find("highway")
|
||||
local name = way.tags:Find("name")
|
||||
local oneway = way.tags:Find("oneway")
|
||||
local route = way.tags:Find("route")
|
||||
local duration = way.tags:Find("duration")
|
||||
|
||||
way.name = name
|
||||
way.speed = speed_profile[highway] or speed_profile['default']
|
||||
|
||||
if route ~= nil and durationIsValid(duration) then
|
||||
way.ignore_in_grid = true
|
||||
way.speed = math.max( 1, parseDuration(duration) / math.max(1, numberOfNodesInWay-1) )
|
||||
way.is_duration_set = true
|
||||
else
|
||||
way.speed = speed_profile[highway] or speed_profile['default']
|
||||
end
|
||||
|
||||
if oneway == "no" or oneway == "0" or oneway == "false" then
|
||||
way.direction = Way.bidirectional
|
||||
|
Loading…
Reference in New Issue
Block a user