Handle small roundabouts, fixes #516.

This gives us ~51k additional roundabout instructions.
Guidance handes sizes internally.

Note: it is highway=mini_roundabout but junction=roundabout

References:
- http://wiki.openstreetmap.org/wiki/Tag:highway%3Dmini_roundabout
- http://wiki.openstreetmap.org/wiki/Tag:junction=roundabout
- http://taginfo.openstreetmap.org/tags/highway=mini_roundabout
This commit is contained in:
Daniel J. Hofmann 2016-05-30 16:27:06 +02:00
parent e7159adf59
commit 7641b12b08
4 changed files with 9 additions and 8 deletions

View File

@ -225,7 +225,7 @@ function way_function (way, result)
end
-- roundabout handling
if junction and "roundabout" == junction then
if junction and "roundabout" == junction or "mini_roundabout" == highway then
result.roundabout = true
end
@ -285,7 +285,7 @@ function way_function (way, result)
else
-- biking not allowed, maybe we can push our bike?
-- essentially requires pedestrian profiling, for example foot=no mean we can't push a bike
if foot ~= 'no' and junction ~= "roundabout" then
if foot ~= 'no' and junction ~= "roundabout" and highway ~= "mini_roundabout" then
if pedestrian_speeds[highway] then
-- pedestrian-only ways and areas
result.forward_speed = pedestrian_speeds[highway]
@ -317,7 +317,7 @@ function way_function (way, result)
-- direction
local impliedOneway = false
if junction == "roundabout" or highway == "motorway_link" or highway == "motorway" then
if junction == "roundabout" or highway == "mini_roundabout" or highway == "motorway_link" or highway == "motorway" then
impliedOneway = true
end
@ -357,7 +357,7 @@ function way_function (way, result)
-- pushing bikes
if bicycle_speeds[highway] or pedestrian_speeds[highway] then
if foot ~= "no" and junction ~= "roundabout" then
if foot ~= "no" and junction ~= "roundabout" and highway ~= "mini_roundabout" then
if result.backward_mode == mode.inaccessible then
result.backward_speed = walking_speed
result.backward_mode = mode.pushing_bike

View File

@ -368,7 +368,7 @@ function way_function (way, result)
-- result.name = highway -- if no name exists, use way type
end
if junction and "roundabout" == junction then
if junction and ("roundabout" == junction or "mini_roundabout" == highway) then
result.roundabout = true
end
@ -390,6 +390,7 @@ function way_function (way, result)
oneway == "1" or
oneway == "true" or
junction == "roundabout" or
highway == "mini_roundabout" or
(highway == "motorway_link" and oneway ~="no") or
(highway == "motorway" and oneway ~= "no") then
result.backward_mode = mode.inaccessible

View File

@ -162,7 +162,7 @@ function way_function (way, result)
end
-- roundabouts
if "roundabout" == junction then
if "roundabout" == junction or "mini_roundabout" == highway then
result.roundabout = true
end

View File

@ -103,11 +103,11 @@ function way_function (way, result)
-- nothing to do
elseif oneway == "-1" then
result.forward_mode = mode.inaccessible
elseif oneway == "yes" or oneway == "1" or oneway == "true" or junction == "roundabout" then
elseif oneway == "yes" or oneway == "1" or oneway == "true" or junction == "roundabout" or highway == "mini_roundabout" then
result.backward_mode = mode.inaccessible
end
if junction == 'roundabout' then
if junction == 'roundabout' or highway == 'mini_roundabout' then
result.roundabout = true
end
end