225 lines
7 KiB
Text
225 lines
7 KiB
Text
# *** The trekking profile is for slow travel
|
|
# *** and avoiding car traffic, but still with
|
|
# *** a focus on approaching your destination
|
|
# *** efficiently.
|
|
|
|
---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 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
|
|
|
|
#
|
|
# pre-calculate some logical expressions
|
|
#
|
|
assign is_ldcr and longdistancecycleway=yes not ignore_cycleroutes
|
|
assign isbike or bicycle=yes or bicycle=designated 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 probablyGood or ispaved and isbike not isunpaved
|
|
|
|
|
|
#
|
|
# this is the cost (in Meter) for a 90-degree turn
|
|
# The actual cost is calculated as turncost*cos(angle)
|
|
# (Suppressing turncost while following longdistance-cycleways
|
|
# makes them a little bit more magnetic)
|
|
#
|
|
assign turncost switch is_ldcr 0 90
|
|
|
|
#
|
|
# calculate the initial cost
|
|
# this is added to the total cost each time the costfactor
|
|
# changed
|
|
#
|
|
assign initialcost switch highway=ferry 10000 0
|
|
|
|
#
|
|
# implicit access here just from the motorroad tag
|
|
# (implicit access rules from highway tag handled elsewhere)
|
|
#
|
|
assign defaultaccess
|
|
switch access=
|
|
not motorroad=yes
|
|
switch or access=private access=no
|
|
0
|
|
1
|
|
|
|
#
|
|
# calculate logical bike access
|
|
#
|
|
assign bikeaccess
|
|
or longdistancecycleway=yes
|
|
switch bicycle=
|
|
switch vehicle=
|
|
defaultaccess
|
|
switch or vehicle=private vehicle=no
|
|
0
|
|
1
|
|
not or bicycle=private or bicycle=no bicycle=dismount
|
|
|
|
#
|
|
# calculate logical foot access
|
|
#
|
|
assign footaccess
|
|
or bikeaccess
|
|
or bicycle=dismount
|
|
switch foot=
|
|
defaultaccess
|
|
not or foot=private foot=no
|
|
|
|
#
|
|
# if not bike-, but foot-acess, just a moderate penalty,
|
|
# otherwise access is forbidden
|
|
#
|
|
assign accesspenalty
|
|
switch bikeaccess
|
|
0
|
|
switch footaccess
|
|
4
|
|
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 cycleway=opposite_track 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
|
|
4.0
|
|
0.0
|
|
|
|
#
|
|
# calculate the cost-factor, which is the factor
|
|
# by which the distance of a way-segment is multiplied
|
|
# to calculate the cost of that segment. The costfactor
|
|
# must be >=1 and it's supposed to be close to 1 for
|
|
# the type of way the routing profile is searching for
|
|
#
|
|
assign costfactor
|
|
|
|
add max onewaypenalty accesspenalty
|
|
|
|
#
|
|
# steps and ferries are special. Note this is handled
|
|
# before the longdistancecycleway-switch, to be able
|
|
# to really exlude them be setting cost to infinity
|
|
#
|
|
switch highway=steps switch allow_steps 40 100000
|
|
switch highway=ferry switch allow_ferries 5.67 100000
|
|
|
|
#
|
|
# handle long-distance cycle-routes.
|
|
#
|
|
switch is_ldcr 1 # always treated as perfect (=1)
|
|
add switch stick_to_cycleroutes 0.5 0.05 # everything else somewhat up
|
|
|
|
#
|
|
# some other highway types
|
|
#
|
|
switch highway=pedestrian 3
|
|
switch highway=bridleway 5
|
|
switch highway=cycleway 1
|
|
switch or highway=residential highway=living_street switch isunpaved 1.5 1.1
|
|
switch highway=service switch isunpaved 1.6 1.3
|
|
|
|
#
|
|
# tracks and track-like ways are rated mainly be tracktype/grade
|
|
# But note that if no tracktype is given (mainly for road/path/footway)
|
|
# it can be o.k. if there's any other hint for quality
|
|
#
|
|
switch or highway=track or highway=road or highway=path highway=footway
|
|
switch tracktype=grade1 switch probablyGood 1.0 1.3
|
|
switch tracktype=grade2 switch probablyGood 1.1 2.0
|
|
switch tracktype=grade3 switch probablyGood 1.5 3.0
|
|
switch tracktype=grade4 switch probablyGood 2.0 5.0
|
|
switch tracktype=grade5 switch probablyGood 3.0 5.0
|
|
switch probablyGood 1.0 5.0
|
|
|
|
#
|
|
# When avoiding unsafe ways, avoid highways without a bike hint
|
|
#
|
|
add switch and avoid_unsafe not isbike 2 0
|
|
|
|
#
|
|
# exclude motorways and proposed roads
|
|
#
|
|
switch or highway=motorway highway=motorway_link 100000
|
|
switch highway=proposed 100000
|
|
|
|
#
|
|
# actuals roads are o.k. if we have a bike hint
|
|
#
|
|
switch or highway=trunk highway=trunk_link switch isbike 1.5 10
|
|
switch or highway=primary highway=primary_link switch isbike 1.2 3
|
|
switch or highway=secondary highway=secondary_link switch isbike 1.1 1.6
|
|
switch or highway=tertiary highway=tertiary_link switch isbike 1.0 1.4
|
|
switch highway=unclassified switch isbike 1.0 1.3
|
|
|
|
#
|
|
# default for any other highway type not handled above
|
|
#
|
|
2.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 or longdistancecycleway=yes lcn=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
|
|
100
|
|
1000000
|