add restricted penalty on NoTurn turns

This commit is contained in:
karenzshea 2017-03-01 13:50:53 -05:00 committed by Patrick Niklaus
parent 7632c20ddf
commit 8e43c8cbce
2 changed files with 35 additions and 6 deletions

View File

@ -81,3 +81,32 @@ Feature: Car - Destination only, no passing through
| e | a | de,cd,bc,ab,ab |
| b | d | bc,cd,cd |
| d | b | cd,bc,bc |
Scenario: Car - Routing around a way that becomes destination only
Given the node map
"""
b
\
e
/ +
/ d+++++++c--i
| \
| h--a
f |
\________________g
"""
And the ways
| nodes | access | oneway |
| ah | | no |
| ihg | | no |
| gfe | | no |
| icde | | no |
| cde | destination | no |
| eb | | no |
When I route I should get
| from | to | route | # |
| i | b | ihg,ihg,gfe,eb,eb | # goes around access=destination, though restricted way starts at two node intersection|
| b | d | eb,cde,cde | # ends in restricted way correctly |
| b | i | eb,gfe,ihg,ihg | # goes around restricted way correctly |

View File

@ -393,6 +393,7 @@ function turn_function (turn)
else
turn.weight = turn.duration
end
end
if properties.weight_name == 'routability' then
-- penalize turns from non-local access only segments onto local access only tags
if not turn.source_restricted and turn.target_restricted then
@ -400,4 +401,3 @@ function turn_function (turn)
end
end
end
end