201 lines
6.3 KiB
Text
201 lines
6.3 KiB
Text
#
|
|
# 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
|