From 8ee25665da6b436b80d952e6fda998990bb0fcf1 Mon Sep 17 00:00:00 2001 From: MichalPP Date: Sat, 19 May 2018 11:30:12 +0200 Subject: [PATCH] prefer ways on route=bicycle --- profiles/bicycle.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/profiles/bicycle.lua b/profiles/bicycle.lua index f08bcebe2..476a9f47b 100644 --- a/profiles/bicycle.lua +++ b/profiles/bicycle.lua @@ -32,6 +32,7 @@ function setup() turn_penalty = 6, turn_bias = 1.4, use_public_transport = true, + route_preference = 1.1, allowed_start_modes = Set { mode.cycling, @@ -324,6 +325,7 @@ function handle_bicycle_tags(profile,way,result,data) end safety_handler(profile,way,result,data) + bicycle_relation_handler(profile,way,result,data,relations) end @@ -464,6 +466,16 @@ function cycleway_handler(profile,way,result,data) end end +function bicycle_relation_handler(profile,way,result,data,relations) + -- prefer ways on route=bicycle by factor of profile.route_preference + if result.forward_rate and Relations.filter_relations(relations, way, "route", "bicycle", "route", "forward") == "bicycle" then + result.forward_rate = result.forward_rate * profile.route_preference + end + if result.backward_rate and Relations.filter_relations(relations, way, "route", "bicycle", "route", "backward") == "bicycle" then + result.backward_rate = result.backward_rate * profile.route_preference + end +end + function bike_push_handler(profile,way,result,data) -- pushing bikes - if no other mode found if result.forward_mode == mode.inaccessible or result.backward_mode == mode.inaccessible or