Guard against mis-tagging: only use destination tag in combination with oneway tag
This commit is contained in:
parent
445e5bed49
commit
c7e19396a4
@ -13,23 +13,26 @@ Feature: Destination Signs
|
|||||||
| i | j |
|
| i | j |
|
||||||
| k | l |
|
| k | l |
|
||||||
| m | n |
|
| m | n |
|
||||||
|
| o | p |
|
||||||
|
|
||||||
And the ways
|
And the ways
|
||||||
| nodes | name | ref | destination | destination:ref |
|
| nodes | name | ref | destination | destination:ref | oneway | # |
|
||||||
| ab | AB | E1 | | |
|
| ab | AB | E1 | | | yes | |
|
||||||
| cd | CD | | Berlin | |
|
| cd | CD | | Berlin | | yes | |
|
||||||
| ef | EF | | Berlin | A1 |
|
| ef | EF | | Berlin | A1 | yes | |
|
||||||
| gh | | | Berlin | A1 |
|
| gh | | | Berlin | A1 | yes | |
|
||||||
| ij | | | Berlin | |
|
| ij | | | Berlin | | yes | |
|
||||||
| kl | KL | E1 | Berlin | A1 |
|
| kl | KL | E1 | Berlin | A1 | yes | |
|
||||||
| mn | MN | | Berlin;Hamburg | A1;A2 |
|
| mn | MN | | Berlin;Hamburg | A1;A2 | yes | |
|
||||||
|
| op | OP | | Berlin;Hamburg | A1;A2 | no | mis-tagged destination: not a oneway |
|
||||||
|
|
||||||
When I route I should get
|
When I route I should get
|
||||||
| from | to | route |
|
| from | to | route | # |
|
||||||
| a | b | AB (E1),AB (E1) |
|
| a | b | AB (E1),AB (E1) | |
|
||||||
| c | d | CD (Berlin),CD (Berlin) |
|
| c | d | CD (Berlin),CD (Berlin) | |
|
||||||
| e | f | EF (A1: Berlin),EF (A1: Berlin) |
|
| e | f | EF (A1: Berlin),EF (A1: Berlin) | |
|
||||||
| g | h | , |
|
| g | h | , | |
|
||||||
| i | j | , |
|
| i | j | , | |
|
||||||
| k | l | KL (E1),KL (E1) |
|
| k | l | KL (E1),KL (E1) | |
|
||||||
| m | n | MN (A1, A2: Berlin, Hamburg),MN (A1, A2: Berlin, Hamburg) |
|
| m | n | MN (A1, A2: Berlin, Hamburg),MN (A1, A2: Berlin, Hamburg) | |
|
||||||
|
| o | p | OP,OP | guard against mis-tagging |
|
||||||
|
@ -353,19 +353,15 @@ function way_function (way, result)
|
|||||||
-- local barrier = way:get_value_by_key("barrier", "")
|
-- local barrier = way:get_value_by_key("barrier", "")
|
||||||
-- local cycleway = way:get_value_by_key("cycleway", "")
|
-- local cycleway = way:get_value_by_key("cycleway", "")
|
||||||
local service = way:get_value_by_key("service")
|
local service = way:get_value_by_key("service")
|
||||||
local destination = get_destination(way)
|
|
||||||
|
|
||||||
-- Set the name that will be used for instructions
|
-- Set the name that will be used for instructions
|
||||||
local has_ref = ref and "" ~= ref
|
local has_ref = ref and "" ~= ref
|
||||||
local has_name = name and "" ~= name
|
local has_name = name and "" ~= name
|
||||||
local has_destination = destination and "" ~= destination
|
|
||||||
|
|
||||||
if has_name and has_ref then
|
if has_name and has_ref then
|
||||||
result.name = name .. " (" .. ref .. ")"
|
result.name = name .. " (" .. ref .. ")"
|
||||||
elseif has_ref then
|
elseif has_ref then
|
||||||
result.name = ref
|
result.name = ref
|
||||||
elseif has_name and has_destination then
|
|
||||||
result.name = name .. " (" .. destination .. ")"
|
|
||||||
elseif has_name then
|
elseif has_name then
|
||||||
result.name = name
|
result.name = name
|
||||||
-- else
|
-- else
|
||||||
@ -397,6 +393,14 @@ function way_function (way, result)
|
|||||||
(highway == "motorway_link" and oneway ~="no") or
|
(highway == "motorway_link" and oneway ~="no") or
|
||||||
(highway == "motorway" and oneway ~= "no") then
|
(highway == "motorway" and oneway ~= "no") then
|
||||||
result.backward_mode = mode.inaccessible
|
result.backward_mode = mode.inaccessible
|
||||||
|
|
||||||
|
-- If we're on a oneway and there is no ref tag, re-use destination tag as ref.
|
||||||
|
local destination = get_destination(way)
|
||||||
|
local has_destination = destination and "" ~= destination
|
||||||
|
|
||||||
|
if has_destination and has_name and not has_ref then
|
||||||
|
result.name = name .. " (" .. destination .. ")"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user