test bikes & public_transport stop_area relations

This commit is contained in:
Emil Tin 2012-12-03 11:05:51 +01:00
parent 6f5fc14f59
commit b182cd1fa4
2 changed files with 47 additions and 4 deletions

View File

@ -0,0 +1,37 @@
@routing @bicycle @stop_area @todo
Feature: Bike - Stop areas for public transport
Platforms and railway/bus lines are connected using a relation rather that a way, as specified in:
http://wiki.openstreetmap.org/wiki/Tag:public_transport%3Dstop_area
Background:
Given the speedprofile "bicycle"
Scenario: Bike - Platforms tagged using public_transport
Then routability should be
| highway | public_transport | bicycle | bothw |
| primary | | | x |
| (nil) | platform | | x |
Scenario: Bike - railway platforms
Given the node map
| a | b | c | d |
| | s | t | |
And the nodes
| node | public_transport |
| c | stop_position |
And the ways
| nodes | highway | railway | bicycle | public_transport |
| abcd | (nil) | train | yes | |
| st | (nil) | (nil) | | platform |
And the relations
| type | public_transport | node:stop | way:platform |
| public_transport | stop_area | c | st |
When I route I should get
| from | to | route |
| a | d | abcd |
| s | t | st |
| s | d | /st,.+,abcd/ |

View File

@ -121,6 +121,7 @@ function way_function (way, numberOfNodesInWay)
local junction = way.tags:Find("junction")
local route = way.tags:Find("route")
local railway = way.tags:Find("railway")
local public_transport = way.tags:Find("public_transport")
local maxspeed = parseMaxspeed(way.tags:Find ( "maxspeed") )
local man_made = way.tags:Find("man_made")
local barrier = way.tags:Find("barrier")
@ -135,12 +136,14 @@ function way_function (way, numberOfNodesInWay)
local amenity = way.tags:Find("amenity")
local access = find_access_tag(way)
-- only route on things with highway tag set (not buildings, boundaries, etc)
-- initial routability check, filters out buildings, boundaries, etc
if (not highway or highway == '') and
(not route or route == '') and
(not railway or railway=='') and
(not amenity or amenity=='') then
return 0
(not amenity or amenity=='') and
(not public_transport or public_transport=='')
then
return 0
end
-- access
@ -168,8 +171,11 @@ function way_function (way, numberOfNodesInWay)
way.speed = route_speeds[route]
end
elseif railway and platform_speeds[railway] then
-- railway platforms
-- railway platforms (old tagging scheme)
way.speed = platform_speeds[railway]
elseif platform_speeds[public_transport] then
-- public_transport platforms (new tagging platform)
way.speed = platform_speeds[public_transport]
elseif railway and railway_speeds[railway] then
-- railways
if access and access_tag_whitelist[access] then