# # A fastbike could be a racing bike or a speed pedelec. # But also at night or in rainy whether you might want # to fallback to this one. # # Structure is similar to trekking.brf, see this for documenation. # ---context:global # following code refers to global config # Use the following switches to change behaviour # (1=yes, 0=no): assign consider_elevation 1 # set to 0 to ignore elevation in routing assign allow_steps 1 # set to 0 to disallow steps assign allow_ferries 1 # set to 0 to disallow ferries assign ignore_cycleroutes 0 # set to 1 for better elevation results assign stick_to_cycleroutes 0 # set to 1 to just follow cycleroutes assign avoid_unsafe 0 # set to 1 to avoid standard highways assign forceSecondaryData 1 assign validForBikes 1 # the elevation parameters assign downhillcost switch consider_elevation 60 0 assign downhillcutoff 1.5 assign uphillcost 0 assign uphillcutoff 1.5 ---context:way # following code refers to way-tags assign any_cycleroute or route_bicycle_icn=yes or route_bicycle_ncn=yes or route_bicycle_rcn=yes route_bicycle_lcn=yes assign nodeaccessgranted or any_cycleroute lcn=yes assign ispaved or surface=paved or surface=asphalt or surface=concrete surface=paving_stones assign isunpaved not or surface= or ispaved or surface=fine_gravel surface=cobblestone assign turncost 90 assign initialcost switch route=ferry 10000 0 # # calculate logical bike access # assign bikeaccess = if any_cycleroute then true else if bicycle= then ( if vehicle= then ( if access= then not or motorroad=yes highway=footway else if access=private|no then false else true ) else not vehicle=private|no ) else not bicycle=private|no|dismount # # calculate logical foot access # assign footaccess = if bikeaccess then true else if bicycle=dismount then true else if foot= then ( if access= then not motorroad=yes else if access=private|no then false else true ) else not foot=private|no # # if not bike-, but foot-acess, just a moderate penalty, # otherwise access is forbidden # assign accesspenalty = if bikeaccess then 0 else if footaccess then 6 else 100000 # # handle one-ways. On primary roads, wrong-oneways should # be close to forbidden, while on other ways we just add # 4 to the costfactor (making it at least 5 - you are allowed # to push your bike) # assign oneway switch oneway= junction=roundabout or oneway=yes or oneway=true oneway=1 assign onewaypenalty switch switch reversedirection=yes oneway oneway=-1 switch or cycleway=opposite or cycleway=opposite_lane or cycleway=opposite_track oneway:bicycle=no 0 switch or highway=primary highway=primary_link 50 switch or highway=secondary highway=secondary_link 30 switch or highway=tertiary highway=tertiary_link 20 6.0 0.0 assign hascycleway = not and ( or cycleway= cycleway=no|none ) and ( or cycleway:left= cycleway:left=no ) ( or cycleway:right= cycleway:right=no ) assign trafficpenalty0 = if highway=primary|primary_link then ( if estimated_traffic_class=4 then 0.2 else if estimated_traffic_class=5 then 0.4 else if estimated_traffic_class=6|7 then 0.6 else 0 ) else if highway=secondary|secondary_link then ( if estimated_traffic_class=3 then 0.2 else if estimated_traffic_class=4 then 0.4 else if estimated_traffic_class=5 then 0.6 else if estimated_traffic_class=6|7 then 1 else 0 ) else if highway=tertiary|tertiary_link then ( if estimated_traffic_class=2 then 0.1 else if estimated_traffic_class=3 then 0.3 else if estimated_traffic_class=4 then 0.5 else if estimated_traffic_class=5|6|7 then 1 else 0 ) else 0 assign trafficpenalty = if hascycleway then multiply -1 max -0.3 multiply -1 trafficpenalty0 else trafficpenalty0 assign costfactor add max onewaypenalty accesspenalty add trafficpenalty switch and highway= not route=ferry 100000 switch or highway=motorway highway=motorway_link 100000 switch or highway=proposed highway=abandoned 100000 switch or highway=trunk highway=trunk_link 10 switch or highway=primary highway=primary_link 1.2 switch or highway=secondary highway=secondary_link 1.1 switch or highway=tertiary highway=tertiary_link 1.0 switch highway=unclassified 1.1 switch highway=pedestrian 10 switch highway=steps 1000 switch route=ferry 5.67 switch highway=bridleway 5 switch highway=cycleway|footway 1.3 switch or highway=residential highway=living_street switch isunpaved 10 1.2 switch highway=service switch isunpaved 10 1.2 switch or highway=track or highway=road or highway=path highway=footway switch tracktype=grade1 switch isunpaved 3 1.2 switch tracktype=grade2 switch isunpaved 10 3 switch tracktype=grade3 10.0 switch tracktype=grade4 20.0 switch tracktype=grade5 30.0 switch bicycle=designated 1.3 switch ispaved 2.0 100.0 10.0 ---context:node # following code refers to node tags assign defaultaccess switch access= 1 # add default barrier restrictions here! switch or access=private access=no 0 1 assign bikeaccess or nodeaccessgranted=yes switch bicycle= switch vehicle= defaultaccess switch or vehicle=private vehicle=no 0 1 switch or bicycle=private or bicycle=no bicycle=dismount 0 1 assign footaccess or bicycle=dismount switch foot= defaultaccess switch or foot=private foot=no 0 1 assign initialcost switch bikeaccess 0 switch footaccess 300 1000000