remove calls to handlers now in handle_penalties
This commit is contained in:
parent
46f96af360
commit
25ab51f4f0
@ -53,21 +53,21 @@ Feature: Traffic - turn penalties
|
|||||||
Scenario: Weighting not based on turn penalty file
|
Scenario: Weighting not based on turn penalty file
|
||||||
When I route I should get
|
When I route I should get
|
||||||
| from | to | route | speed | time |
|
| from | to | route | speed | time |
|
||||||
| a | h | ad,dhk,dhk | 52 km/h | 14s +-1 |
|
| a | h | ad,dhk,dhk | 65 km/h | 11s +-1 |
|
||||||
# straight
|
# straight
|
||||||
| i | g | fim,fg,fg | 45 km/h | 16s +-1 |
|
| i | g | fim,fg,fg | 55 km/h | 13s +-1 |
|
||||||
# right
|
# right
|
||||||
| a | e | ad,def,def | 38 km/h | 19s +-1 |
|
| a | e | ad,def,def | 44 km/h | 16.3s +-1 |
|
||||||
# left
|
# left
|
||||||
| c | g | cd,def,fg,fg | 52 km/h | 27s +-1 |
|
| c | g | cd,def,fg,fg | 65 km/h | 22s +-1 |
|
||||||
# double straight
|
# double straight
|
||||||
| p | g | mp,fim,fg,fg | 48 km/h | 29s +-1 |
|
| p | g | mp,fim,fg,fg | 60 km/h | 24s +-1 |
|
||||||
# straight-right
|
# straight-right
|
||||||
| a | l | ad,dhk,klm,klm | 44 km/h | 33s +-1 |
|
| a | l | ad,dhk,klm,klm | 53 km/h | 27s +-1 |
|
||||||
# straight-left
|
# straight-left
|
||||||
| l | e | klm,dhk,def,def | 45 km/h | 32s +-1 |
|
| l | e | klm,dhk,def,def | 55 km/h | 26s +-1 |
|
||||||
# double right
|
# double right
|
||||||
| g | n | fg,fim,mn,mn | 38 km/h | 38s +-1 |
|
| g | n | fg,fim,mn,mn | 44 km/h | 32s +-1 |
|
||||||
# double left
|
# double left
|
||||||
|
|
||||||
Scenario: Weighting based on turn penalty file
|
Scenario: Weighting based on turn penalty file
|
||||||
|
@ -17,7 +17,7 @@ properties.max_speed_for_map_matching = 180/3.6 -- 180kmph -> m/s
|
|||||||
properties.use_turn_restrictions = true
|
properties.use_turn_restrictions = true
|
||||||
properties.continue_straight_at_waypoint = true
|
properties.continue_straight_at_waypoint = true
|
||||||
properties.left_hand_driving = false
|
properties.left_hand_driving = false
|
||||||
-- For routing based on duration, but weighted for prefering certain roads
|
-- For routing based on duration, but weighted for preferring certain roads
|
||||||
properties.weight_name = 'routability'
|
properties.weight_name = 'routability'
|
||||||
-- For shortest duration without penalties for accessibility
|
-- For shortest duration without penalties for accessibility
|
||||||
--properties.weight_name = 'duration'
|
--properties.weight_name = 'duration'
|
||||||
@ -316,10 +316,10 @@ function way_function(way, result)
|
|||||||
-- access tags, e.g: motorcar, motor_vehicle, vehicle
|
-- access tags, e.g: motorcar, motor_vehicle, vehicle
|
||||||
'handle_access',
|
'handle_access',
|
||||||
|
|
||||||
-- check whether forward/backward directons are routable
|
-- check whether forward/backward directions are routable
|
||||||
'handle_oneway',
|
'handle_oneway',
|
||||||
|
|
||||||
-- check whether forward/backward directons are routable
|
-- check whether forward/backward directions are routable
|
||||||
'handle_destinations',
|
'handle_destinations',
|
||||||
|
|
||||||
-- check whether we're using a special transport mode
|
-- check whether we're using a special transport mode
|
||||||
@ -334,11 +334,9 @@ function way_function(way, result)
|
|||||||
|
|
||||||
-- compute speed taking into account way type, maxspeed tags, etc.
|
-- compute speed taking into account way type, maxspeed tags, etc.
|
||||||
'handle_speed',
|
'handle_speed',
|
||||||
'handle_side_roads',
|
|
||||||
'handle_surface',
|
'handle_surface',
|
||||||
'handle_maxspeed',
|
'handle_maxspeed',
|
||||||
'handle_penalties',
|
'handle_penalties',
|
||||||
'handle_alternating_speed',
|
|
||||||
|
|
||||||
-- handle turn lanes and road classification, used for guidance
|
-- handle turn lanes and road classification, used for guidance
|
||||||
'handle_turn_lanes',
|
'handle_turn_lanes',
|
||||||
|
@ -305,17 +305,17 @@ function Handlers.handle_penalties(way,result,data,profile)
|
|||||||
local sideroad_penalty = 1.0
|
local sideroad_penalty = 1.0
|
||||||
data.sideroad = way:get_value_by_key("side_road")
|
data.sideroad = way:get_value_by_key("side_road")
|
||||||
if "yes" == data.sideroad or "rotary" == data.sideroad then
|
if "yes" == data.sideroad or "rotary" == data.sideroad then
|
||||||
sideroad_penalty = side_road_multipler;
|
sideroad_penalty = side_road_multiplier;
|
||||||
end
|
end
|
||||||
|
|
||||||
local penalty = service_penalty * width_penalty * alternating_penalty * sideroad_penalty
|
local penalty = service_penalty * width_penalty * alternating_penalty * sideroad_penalty
|
||||||
|
|
||||||
if properties.weight_name == 'routability' then
|
if properties.weight_name == 'routability' then
|
||||||
if result.forward_speed > 0 then
|
if result.forward_speed > 0 then
|
||||||
result.forward_rate = result.forward_speed * penalty
|
result.forward_rate = result.forward_speed * profile.speed_reduction
|
||||||
end
|
end
|
||||||
if result.backward_speed > 0 then
|
if result.backward_speed > 0 then
|
||||||
result.backward_rate = result.backward_speed * penalty
|
result.backward_rate = result.backward_speed * profile.speed_reduction
|
||||||
end
|
end
|
||||||
if result.duration > 0 then
|
if result.duration > 0 then
|
||||||
result.weight = result.duration / penalty
|
result.weight = result.duration / penalty
|
||||||
@ -331,11 +331,11 @@ function Handlers.handle_maxspeed(way,result,data,profile)
|
|||||||
backward = Handlers.parse_maxspeed(backward,profile)
|
backward = Handlers.parse_maxspeed(backward,profile)
|
||||||
|
|
||||||
if forward and forward > 0 then
|
if forward and forward > 0 then
|
||||||
result.forward_speed = forward * speed_scaling
|
result.forward_speed = forward * profile.speed_reduction
|
||||||
end
|
end
|
||||||
|
|
||||||
if backward and backward > 0 then
|
if backward and backward > 0 then
|
||||||
result.backward_speed = backward * speed_scaling
|
result.backward_speed = backward * profile.speed_reduction
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user