Why only `hov=designated` and not all access tags, such as `hov:yes`,
`hov=no` and so on? From the Wiki:
- designated: The way is designated to high occupancy vehicles.
- yes: High occupancy vehicles are allowed. This by itself does not imply that other vehicles are restricted from using the way.
- no: High occupancy vehicles are not allowed on the way. This by itself does not imply that other vehicle types are allowed to use it.
The primary use-case is conditionally filtering ways such as:
http://www.openstreetmap.org/way/11198593#map=19/37.82571/-122.30521&layers=D
In addition there is a notion of HOV lanes for lane handling:
http://wiki.openstreetmap.org/wiki/Key:hov#hov:lanes.3D.2A
This changeset does not handle lanes at all, only designated HOV ways.
For HOV lane support, a logic similar to the lane access handling needs
to be implemented. This needs to go hand in hand with the existing lane
handling introduced in:
7d076e9344
References:
- #2711
- http://wiki.openstreetmap.org/wiki/Key:access
- http://wiki.openstreetmap.org/wiki/Key:hov#Values
158 lines
9.1 KiB
Gherkin
158 lines
9.1 KiB
Gherkin
@routing @car @access
|
|
Feature: Car - Restricted access
|
|
# Reference: http://wiki.openstreetmap.org/wiki/Key:access
|
|
|
|
Background:
|
|
Given the profile "car"
|
|
|
|
Scenario: Car - Access tag hierarchy on ways
|
|
Then routability should be
|
|
| access | vehicle | motor_vehicle | motorcar | bothw |
|
|
| | | | | x |
|
|
| yes | | | | x |
|
|
| no | | | | |
|
|
| | yes | | | x |
|
|
| | no | | | |
|
|
| no | yes | | | x |
|
|
| yes | no | | | |
|
|
| | | yes | | x |
|
|
| | | no | | |
|
|
| no | | yes | | x |
|
|
| yes | | no | | |
|
|
| | no | yes | | x |
|
|
| | yes | no | | |
|
|
| | | | yes | x |
|
|
| | | | no | |
|
|
| no | | | yes | x |
|
|
| yes | | | no | |
|
|
| | no | | yes | x |
|
|
| | yes | | no | |
|
|
| | | no | yes | x |
|
|
| | | yes | no | |
|
|
|
|
Scenario: Car - Access tag hierarchy on nodes
|
|
Then routability should be
|
|
| node/access | node/vehicle | node/motor_vehicle | node/motorcar | bothw |
|
|
| | | | | x |
|
|
| yes | | | | x |
|
|
| no | | | | |
|
|
| | yes | | | x |
|
|
| | no | | | |
|
|
| no | yes | | | x |
|
|
| yes | no | | | |
|
|
| | | yes | | x |
|
|
| | | no | | |
|
|
| no | | yes | | x |
|
|
| yes | | no | | |
|
|
| | no | yes | | x |
|
|
| | yes | no | | |
|
|
| | | | yes | x |
|
|
| | | | no | |
|
|
| no | | | yes | x |
|
|
| yes | | | no | |
|
|
| | no | | yes | x |
|
|
| | yes | | no | |
|
|
| | | no | yes | x |
|
|
| | | yes | no | |
|
|
|
|
Scenario: Car - Overwriting implied acccess on ways
|
|
Then routability should be
|
|
| highway | access | vehicle | motor_vehicle | motorcar | bothw |
|
|
| primary | | | | | x |
|
|
| runway | | | | | |
|
|
| primary | no | | | | |
|
|
| primary | | no | | | |
|
|
| primary | | | no | | |
|
|
| primary | | | | no | |
|
|
| runway | yes | | | | x |
|
|
| runway | | yes | | | x |
|
|
| runway | | | yes | | x |
|
|
| runway | | | | yes | x |
|
|
|
|
Scenario: Car - Overwriting implied acccess on nodes
|
|
Then routability should be
|
|
| highway | node/access | node/vehicle | node/motor_vehicle | node/motorcar | bothw |
|
|
| primary | | | | | x |
|
|
| runway | | | | | |
|
|
| primary | no | | | | |
|
|
| primary | | no | | | |
|
|
| primary | | | no | | |
|
|
| primary | | | | no | |
|
|
| runway | yes | | | | |
|
|
| runway | | yes | | | |
|
|
| runway | | | yes | | |
|
|
| runway | | | | yes | |
|
|
|
|
Scenario: Car - Access tags on ways
|
|
Then routability should be
|
|
| access | bothw |
|
|
| yes | x |
|
|
| permissive | x |
|
|
| designated | x |
|
|
| no | |
|
|
| private | |
|
|
| agricultural | |
|
|
| forestry | |
|
|
| psv | |
|
|
| delivery | |
|
|
| some_tag | x |
|
|
|
|
|
|
Scenario: Car - Access tags on nodes
|
|
Then routability should be
|
|
| node/access | bothw |
|
|
| yes | x |
|
|
| permissive | x |
|
|
| designated | x |
|
|
| no | |
|
|
| private | |
|
|
| agricultural | |
|
|
| forestry | |
|
|
| psv | |
|
|
| delivery | |
|
|
| some_tag | x |
|
|
|
|
Scenario: Car - Access tags on both node and way
|
|
Then routability should be
|
|
| access | node/access | bothw |
|
|
| yes | yes | x |
|
|
| yes | no | |
|
|
| yes | some_tag | x |
|
|
| no | yes | |
|
|
| no | no | |
|
|
| no | some_tag | |
|
|
| some_tag | yes | x |
|
|
| some_tag | no | |
|
|
| some_tag | some_tag | x |
|
|
|
|
Scenario: Car - Access combinations
|
|
Then routability should be
|
|
| highway | accesss | vehicle | motor_vehicle | motorcar | bothw |
|
|
| runway | private | | | permissive | x |
|
|
| primary | forestry | | yes | | x |
|
|
| cycleway | | | designated | | x |
|
|
| residential | | yes | no | | |
|
|
| motorway | yes | permissive | | private | |
|
|
| trunk | agricultural | designated | permissive | no | |
|
|
| pedestrian | | | | | |
|
|
| pedestrian | | | | destination | x |
|
|
|
|
Scenario: Car - Ignore access tags for other modes
|
|
Then routability should be
|
|
| highway | foot | bicycle | psv | motorhome | bothw |
|
|
| runway | yes | | | | |
|
|
| primary | no | | | | x |
|
|
| runway | | yes | | | |
|
|
| primary | | no | | | x |
|
|
| runway | | | yes | | |
|
|
| primary | | | no | | x |
|
|
| runway | | | | yes | |
|
|
| primary | | | | no | x |
|
|
|
|
Scenario: Car - only designated HOV ways are ignored by default
|
|
Then routability should be
|
|
| highway | hov | bothw |
|
|
| primary | designated | |
|
|
| primary | yes | x |
|
|
| primary | no | x |
|