add tunnel as a class in lua (#4812)

This commit is contained in:
Kajari Ghosh 2018-01-19 09:47:27 -05:00 committed by GitHub
parent a7f1cd36fb
commit 72de59ac91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 3 deletions

View File

@ -5,6 +5,8 @@
- FIXED #4781: Fixed overflow exceptions in percent-encoding parsing - FIXED #4781: Fixed overflow exceptions in percent-encoding parsing
- Guidance: - Guidance:
- CHANGED #4706: Guidance refactoring step to decouple intersection connectivity analysis and turn instructions generation [#4706](https://github.com/Project-OSRM/osrm-backend/pull/4706) - CHANGED #4706: Guidance refactoring step to decouple intersection connectivity analysis and turn instructions generation [#4706](https://github.com/Project-OSRM/osrm-backend/pull/4706)
- Profile:
- ADDED: `tunnel` as a new class in car profile so that sections of the route with tunnel tags will be marked as such
# 5.14.3 # 5.14.3
- Changes from 5.14.2: - Changes from 5.14.2:

View File

@ -82,7 +82,7 @@ Feature: Car - Mode flag
| from | to | route | turns | classes | | from | to | route | turns | classes |
| a | d | ab,cd | depart,arrive| [(restricted),(motorway,restricted),()],[()] | | a | d | ab,cd | depart,arrive| [(restricted),(motorway,restricted),()],[()] |
Scenario: Car - We toll restricted with a class Scenario: Car - We tag toll with a class
Given the node map Given the node map
""" """
a b a b
@ -99,6 +99,26 @@ Feature: Car - Mode flag
| from | to | route | turns | classes | | from | to | route | turns | classes |
| a | d | ab,cd | depart,arrive | [(toll),(motorway,toll),()],[()] | | a | d | ab,cd | depart,arrive | [(toll),(motorway,toll),()],[()] |
Scenario: Car - We tag tunnel with a class
Background:
Given a grid size of 200 meters
Given the node map
"""
a b
c d
"""
And the ways
| nodes | tunnel |
| ab | no |
| bc | yes |
| cd | |
When I route I should get
| from | to | route | turns | classes |
| a | d | ab,bc,cd,cd | depart,new name right,new name left,arrive | [()],[(tunnel)],[()],[()] |
Scenario: Car - From roundabout on toll road Scenario: Car - From roundabout on toll road
Given the node map Given the node map
""" """

View File

@ -104,7 +104,7 @@ function setup()
}, },
classes = Sequence { classes = Sequence {
'toll', 'motorway', 'ferry', 'restricted' 'toll', 'motorway', 'ferry', 'restricted', 'tunnel'
}, },
-- classes to support for exclude flags -- classes to support for exclude flags

View File

@ -283,6 +283,12 @@ end
function WayHandlers.classes(profile,way,result,data) function WayHandlers.classes(profile,way,result,data)
local forward_toll, backward_toll = Tags.get_forward_backward_by_key(way, data, "toll") local forward_toll, backward_toll = Tags.get_forward_backward_by_key(way, data, "toll")
local forward_route, backward_route = Tags.get_forward_backward_by_key(way, data, "route") local forward_route, backward_route = Tags.get_forward_backward_by_key(way, data, "route")
local tunnel = way:get_value_by_key("tunnel")
if tunnel and tunnel ~= "no" then
result.forward_classes["tunnel"] = true
result.backward_classes["tunnel"] = true
end
if forward_toll == "yes" then if forward_toll == "yes" then
result.forward_classes["toll"] = true result.forward_classes["toll"] = true

View File

@ -10,7 +10,7 @@ exports.three_test_coordinates = [[7.41337, 43.72956],
exports.two_test_coordinates = exports.three_test_coordinates.slice(0, 2) exports.two_test_coordinates = exports.three_test_coordinates.slice(0, 2)
exports.test_tile = {'at': [17059, 11948, 15], 'size': 168606}; exports.test_tile = {'at': [17059, 11948, 15], 'size': 169239};
// Test files generated by the routing engine; check test/data // Test files generated by the routing engine; check test/data