diff --git a/features/car/barrier.feature b/features/car/barrier.feature index 7c89688c9..3f5bef53e 100644 --- a/features/car/barrier.feature +++ b/features/car/barrier.feature @@ -37,3 +37,10 @@ Feature: Car - Barriers | wall | no | | | wall | private | | | wall | agricultural | | + + Scenario: Car - Rising bollard exception for barriers + Then routability should be + | node/barrier | node/bollard | bothw | + | bollard | | | + | bollard | rising | x | + | bollard | removable | | diff --git a/profiles/car.lua b/profiles/car.lua index 03d266437..03ca924dc 100644 --- a/profiles/car.lua +++ b/profiles/car.lua @@ -195,7 +195,11 @@ function node_function (node, result) else local barrier = node:get_value_by_key("barrier") if barrier and "" ~= barrier then - if not barrier_whitelist[barrier] then + -- make an exception for rising bollard barriers + local bollard = node:get_value_by_key("bollard") + local rising_bollard = bollard and "rising" == bollard + + if not barrier_whitelist[barrier] and not rising_bollard then result.barrier = true end end