# # Profile for fast recumbent bikes, contributed by http://www.velomobilforum.de ---context:global assign totalMass = 90 #Gesamtmasse des Fahrzeugs (Fahrzeug, Fahrer, Gepäck...) in kg assign maxSpeed = 60 #Maximale Geschwindigkeit ab der der Fahrer bremst in km/h assign S_C_x = 0.23 #Effektive Stirnfläche in m² assign C_r = 0.004 #Rollwiderstand assign bikerPower = 125 #Dauerleistung in Watt assign ignore_bicycle_no = false # für Regionen mit falschen bicyle=no tags können sie mit "true" ignoriert werden. Auch Shuttletransporte (bicycle=dismount + foot=no) werden geroutet assign consider_smoothness_tags = true # mit false kann die kanne die Auswertung der smoothness tags abgeschaltet werden assign low_memory_cutoff = false # mit true werden Wege mit hohen Kosten aus der Berechnung genommen und damit wird die Berechnung schneller und benötigt weniger Arbeitspeicher. assign turnInstructionMode 1 #Ausgabe von Abiegehinweise 0=keine, 1=automatische Wahl, 2=locus-Style, 3=osmand-Style assign turnInstructionCatchingRange 20 # innerhalb dieser Strecke werden mehrere Abiegehinweise zu einem zusammengefasst und die Abiegewinkel werden besser an die generelle Richtung angenähert assign turnInstructionRoundabouts true # mit "false" werden keine speziellen Abiegehinweise für den Kreisverkehr generiert assign downhillcost 80 # Kosten für die Höhenmeter bergab assign downhillcutoff 0.1 # Gefälle unter diesem Wert in Prozent werden nicht gewertet assign uphillcost 80 # Kosten für die Höhenmeter bergauf assign uphillcutoff 1 # Steigungen unter diesem Wert in Prozent werden nicht gewertet assign validForBikes true # bei true werden die Außnahmen bei den Abbiegebeschränkungen für Fahrräder aktiviert assign considerTurnRestrictions true # bei false werden die Abbiegebeschränkungen ignoriert assign pass1coefficient 2.5 # Berechnugskoeffizient für erste schnelle Berechnung assign pass2coefficient 0 # Berechnugskoeffizient für zweite exakte Berechnung # sinnvolle Werte für den ersten Koeffizienten: # 1 exakte Berechnung beim ersten Durchlauf # umso größer die Werte umso schneller und ungenauer die erste Berechnung # sinnvolle Werte für den zweiten Koeffizienten: # 0 exakte Berechnung mit Beschränkung des Suchgebiets über die Kosten der ersten Berechnung # -1 keine zweite Berechnung, nur sinnvoll bei 1 im ersten Durchlauf # Um die ungenauen SRTM Höhendaten zu filtern werden für jeweils für Anstiege und Gefälle Puffer verwendet. Erst wenn diese überschritten werden die Segmente als Anstiege oder Gefälle gewertet. assign elevationpenaltybuffer 7 # Höhenpuffer (in Meter) ab dem die Höhenstrafen beginnen und das Segment als Anstieg und Gefälle gewertet wird assign elevationmaxbuffer 13 # Maximale Puffergröße (in Meter), alles darüberhinausgehende wird voll bestraft assign elevationbufferreduce 1 # im Bereich zwischen elevationpenaltybuffer und elevationmaxbuffer wird eine Höhenstrafe, die einer Steigung oder Gefälle dieses Wertes (in Prozent) entspricht, verhängt und diese Höhenmeter vom Puffer abgezogen. assign lmc switch low_memory_cutoff 10000 0 ---context:way # Parameter für die Wege #zusätzliche Kosten in Meter für jeden Streckenabschnitt 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 cycleway or bicycle_road=yes or highway=cycleway and highway=path|footway bicycle=designated|yes assign footway or highway=footway and highway=path foot=designated|yes assign turncost switch junction=roundabout 0 150 # Kosten die für eine 90 Grad Abbiegung berechnet werden. Für kleinere Winkel werden sie mit turncost*cos(Winkel) berechnet, bei Kreisverkehr keine weitere Kosten assign initialclassifier # hier wird bestimmten Wegen ein Wert zugeordnet und wenn er sich vom vorherigen unterscheidet die initalcost hinzugerechnet switch route=ferry 2 switch highway=steps 3 switch cycleway 4 switch footway 5 1 assign initialcost switch route=ferry 10000 # Kosten wenn eine Fähre verwendet wird switch highway=steps 1000 # Kosten für Stufen switch cycleway 100 # Kosten für Radwege switch footway 1000 # Kosten für Fußwege 0 # Kosten ab hier als Meter für jeden tatsächlichen Meter 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 #zusätzliche Kosten für in Gegenrichtung für Radfahrer freigegebene Einbahnstraßen in Gegenrichtung switch or highway=primary highway=primary_link add lmc 50 #zusätzliche Kosten für Bundesstraßen Einbahnstraßen in Gegenrichtung switch or highway=secondary highway=secondary_link add lmc 30 #zusätzliche Kosten für Landstraßen Einbahnstraßen in Gegenrichtung switch or highway=tertiary highway=tertiary_link add lmc 25 #zusätzliche Kosten für Kreisstraßen Einbahnstraßen in Gegenrichtung 20.0 #zusätzliche Kosten für sonstige Einbahnstraßen in Gegenrichtung 0.0 assign defaultaccess switch access= not motorroad=yes switch or access=private access=no 0 1 assign bikeaccess or any_cycleroute switch bicycle= switch bicycle_road=yes 1 switch vehicle= defaultaccess switch or vehicle=private vehicle=no 0 1 not or bicycle=private or and not ignore_bicycle_no bicycle=no bicycle=dismount assign footaccess or bikeaccess or and bicycle=dismount ignore_bicycle_no switch foot= defaultaccess not or foot=private foot=no assign accesspenalty switch bikeaccess 0 switch footaccess 10 #Zusatzkosten fürs Schieben 10000 #Zusatzkosten für gesperrte oder private Wege assign maxspeed_forward switch maxspeed:forward=50 50 switch maxspeed:forward=30 30 switch maxspeed:forward=10 10 switch maxspeed:forward=20 20 switch maxspeed:forward=40 40 switch maxspeed:forward=60 60 switch maxspeed:forward=70 70 switch maxspeed:forward=80 80 switch maxspeed:forward=90 90 switch maxspeed:forward=100 100 switch maxspeed:forward=110 110 switch maxspeed:forward=120 120 switch maxspeed:forward=130 130 switch maxspeed:forward=urban 50 switch maxspeed:forward=rural 100 0 assign maxspeed_backward switch maxspeed:backward=50 50 switch maxspeed:backward=30 30 switch maxspeed:backward=10 10 switch maxspeed:backward=20 20 switch maxspeed:backward=40 40 switch maxspeed:backward=60 60 switch maxspeed:backward=70 70 switch maxspeed:backward=80 80 switch maxspeed:backward=90 90 switch maxspeed:backward=100 100 switch maxspeed:backward=110 110 switch maxspeed:backward=120 120 switch maxspeed:backward=130 130 switch maxspeed:backward=urban 50 switch maxspeed:backward=rural 100 0 assign maxspeed switch and reversedirection=yes maxspeed_backward maxspeed_backward switch and not reversedirection=yes maxspeed_forward maxspeed_forward switch maxspeed=50 50 switch maxspeed=30 30 switch maxspeed=10 10 switch maxspeed=20 20 switch maxspeed=40 40 switch maxspeed=60 60 switch maxspeed=70 70 switch maxspeed=80 80 switch maxspeed=90 90 switch maxspeed=100 100 switch maxspeed=110 110 switch maxspeed=120 120 switch maxspeed=130 130 switch maxspeed=urban 50 switch maxspeed=rural 100 999 assign downspeedpenalty switch equal maxspeed 10 4 # Zusatzkosten für Geschwindigkeitsbegrenzung 10 km/h bei Gefälle switch equal maxspeed 20 1.5 # Zusatzkosten für Geschwindigkeitsbegrenzung 20 km/h bei Gefälle switch equal maxspeed 30 0.7 # Zusatzkosten für Geschwindigkeitsbegrenzung 30 km/h bei Gefälle switch equal maxspeed 40 0.4 # Zusatzkosten für Geschwindigkeitsbegrenzung 40 km/h bei Gefälle switch equal maxspeed 50 0.2 # Zusatzkosten für Geschwindigkeitsbegrenzung 50 km/h bei Gefälle 0 assign flatspeedpenalty switch equal maxspeed 10 2 # Zusatzkosten für Geschwindigkeitsbegrenzung 10 km/h in der Ebene switch equal maxspeed 20 0.5 # Zusatzkosten für Geschwindigkeitsbegrenzung 20 km/h in der Ebene switch equal maxspeed 30 0.15 # Zusatzkosten für Geschwindigkeitsbegrenzung 30 km/h in der Ebene switch equal maxspeed 40 0.12 # Zusatzkosten für Geschwindigkeitsbegrenzung 40 km/h bei Gefälle switch equal maxspeed 50 0.1 # Zusatzkosten für Geschwindigkeitsbegrenzung 50 km/h in der Ebene 0 assign upspeedpenalty switch equal maxspeed 10 1.5 # Zusatzkosten für Geschwindigkeitsbegrenzung 10 km/h bei Anstiegen switch equal maxspeed 20 0.4 # Zusatzkosten für Geschwindigkeitsbegrenzung 20 km/h bei Anstiegen switch equal maxspeed 30 0.1 # Zusatzkosten für Geschwindigkeitsbegrenzung 30 km/h bei Anstiegen 0 assign surfacepenalty add switch embedded_rails=tram|yes|rail 10 # Zusatzkosten bei Schienen in der Fahrbahn 0 switch surface=asphalt|paved 0 #Zusatzkosten für Teer oder versiegelte Flächen switch concrete=plates 1 # Zusatzkosten für Betonplattenwege switch concrete=lanes 2 # Zusatzkosten für Betonspurplatten switch surface=concrete|paving_stones|wood|metal 0.4 #Zusatzkosten für Beton, Pflastersteine, Holz oder Metall switch surface=cobblestone|fine_gravel|compacted|sett|grass_paver 4 #Zusatzkosten für Kopfsteinpflaster, Splitt, verdichtete Deckschicht, behauene Pflastersteine oder Rasengittersteine switch surface=gravel|sand|pebblestone add lmc 10 #Zusatzkosten für Schotter, Sand oder Kies switch surface=ground|grass|unpaved|dirt|earth|mud|clay add lmc 50 #Zusatzkosten für naturbelassene Wege, Grasswege, unbefestigte Wege, Schmutzwege, erdige Wege, schlammige Wege oder Lehmwege 0 assign smoothnesspenalty switch smoothness=excellent|good|very_good 0 #Zusatzkosten für excellente, gute, oder sehr gute Oberflächen switch smoothness=intermediate|medium 0.2 #Zusatzkosten für mittelmäßige Oberflächen switch smoothness=rough|poor 2 #Zusatzkosten für raue oder schlechte Oberflächen switch smoothness=robust_wheels|bad add lmc 10 #Zusatzkosten für Oberflächen die robuste Reifen benötigen oder schlechte Oberflächen switch smoothness=high_clearance|off_road_wheels|very_bad|horrible|very_horrible|impassable add lmc 100 #Zusatzkosten für Oberflächen die eine erhöhte Bodenfreiheit oder Geländebereifung benötigen, schrecklich, sehr schrecklich oder unpasierbar sind 0 assign costfactor # dieser Abschnitt ist für die Kosten in der Ebene switch and highway= not route=ferry 10000 # Kosten für alles ohne higway tag außer Fähren switch or highway=proposed highway=abandoned 10000 # Kosten für geplante oder Wege im Bau min 9999 add onewaypenalty add accesspenalty add surfacepenalty add switch consider_smoothness_tags smoothnesspenalty 0 add flatspeedpenalty switch highway=motorway|motorway_link 10000 # Kosten für Autobahnen switch route=ferry 10.67 # Kosten für Fähren switch highway=trunk|trunk_link 5 # Kosten für eine autobahnänliche Straße switch highway=primary|primary_link 2 # Kosten für Bundesstraßen switch highway=secondary|secondary_link 1 # Kosten für Landstraßen switch highway=tertiary|tertiary_link 1 # Kosten für Kreisstraßen switch highway=unclassified 1 # Kosten für Verbindungsstraßen switch highway=residential|service 1.2 # Kosten für Wohn- und Zufahrtsstraßen switch highway=track switch tracktype=grade1 1.2 # Kosten für geteerte, betonierte oder gepflasterte Feldwege switch tracktype=grade2 7 # Kosten für geschotterte Feldwege switch tracktype=grade3 add lmc 40 # Kosten für Feldwege mit weichem Untergrund switch tracktype=grade4 add lmc 50 # Kosten für unbefestigte Feldwege switch tracktype=grade5 add lmc 50 # Kosten für kaum erkennbare Feldwege add lmc 20 # Kosten für Feldwege ohne Oberflächenangabe switch cycleway 1.3 # Kosten für Fahrradwege switch ( or highway=living_street living_street=yes ) 4 # Kosten für Spielstraßen switch highway=road 7 # Kosten für noch nicht genauer beschriebene Straße switch footway 15 # Kosten für Fußwege switch highway=pedestrian 20 # Kosten für Gehwege switch highway=steps 30 # Kosten für Stufen switch highway=path switch surface= add lmc 40 # Kosten für Pfade ohne Oberflächenangabe 1.3 # Kosten für Pfade mit Oberflächenangabe switch highway=bridleway add lmc 80 # Kosten für Reitwege add lmc 20 # Kosten für sonstige Wege assign uphillcostfactor # dieser Abschnitt ist für die Kosten bei Anstiegen # da er von der Struktur identisch wie der vorherige Abschnitt werde ich die Beschreibung hier nicht wiederholen switch and highway= not route=ferry 10000 switch or highway=proposed highway=abandoned 10000 min 9999 add upspeedpenalty add onewaypenalty add accesspenalty add switch consider_smoothness_tags smoothnesspenalty 0 add surfacepenalty switch highway=motorway|motorway_link 10000 switch route=ferry 10.67 switch highway=trunk|trunk_link 7 switch highway=primary|primary_link 3 switch highway=secondary|secondary_link 1.2 switch highway=tertiary|tertiary_link 1 switch highway=unclassified 1 switch highway=residential|service 1 switch highway=track switch tracktype=grade1 1 switch tracktype=grade2 3 switch tracktype=grade3 add lmc 40 switch tracktype=grade4 add lmc 50 switch tracktype=grade5 add lmc 50 add lmc 20 switch cycleway 1 switch ( or highway=living_street living_street=yes ) 2.5 switch highway=road 5 switch footway 15 switch highway=pedestrian 20 switch highway=steps 30 switch highway=path switch surface= add lmc 30 1 switch highway=bridleway add lmc 80 add lmc 20 assign downhillcostfactor # dieser Abschnitt ist für die Kosten bei Gefälle # da er von der Struktur identisch wie der vorvorherige Abschnitt werde ich die Beschreibung hier auch nicht wiederholen switch and highway= not route=ferry 10000 switch or highway=proposed highway=abandoned 10000 min 9999 add downspeedpenalty add onewaypenalty add accesspenalty add switch consider_smoothness_tags smoothnesspenalty 0 add surfacepenalty switch highway=motorway|motorway_link 10000 switch route=ferry 10.67 switch highway=trunk|trunk_link 3 switch highway=primary|primary_link 2 switch highway=secondary|secondary_link 1 switch highway=tertiary|tertiary_link 1 switch highway=unclassified 1.2 switch highway=residential|service 2 switch highway=track switch tracktype=grade1 2 switch tracktype=grade2 8 switch tracktype=grade3 add lmc 40 switch tracktype=grade4 add lmc 50 switch tracktype=grade5 add lmc 50 add lmc 20 switch cycleway 2 switch ( or highway=living_street living_street=yes ) 8 switch highway=road 10 switch footway 20 switch highway=pedestrian 30 switch highway=steps 40 switch highway=path switch surface= add lmc 40 2 switch highway=bridleway add lmc 80 add lmc 20 # hier kommen Variablen die zur Generierung der Abiegehinweise benötigt werden assign priorityclassifier = if ( highway=motorway ) then 30 else if ( highway=motorway_link ) then 29 else if ( highway=trunk ) then 28 else if ( highway=trunk_link ) then 27 else if ( highway=primary ) then 26 else if ( highway=primary_link ) then 25 else if ( highway=secondary ) then 24 else if ( highway=secondary_link ) then 23 else if ( highway=tertiary ) then 22 else if ( highway=tertiary_link ) then 21 else if ( highway=unclassified ) then 20 else if ( or highway=residential|living_street living_street=yes ) then 6 else if ( highway=service ) then 6 else if ( highway=cycleway ) then 6 else if ( or bicycle=designated bicycle_road=yes ) then 6 else if ( highway=track ) then if tracktype=grade1 then 6 else 4 else if ( highway=bridleway|road|path|footway ) then 4 else if ( highway=steps ) then 2 else if ( highway=pedestrian ) then 2 else 0 assign isbadoneway = not equal onewaypenalty 0 assign isgoodoneway = if reversedirection=yes then oneway=-1 else if oneway= then junction=roundabout else oneway=yes|true|1 assign isroundabout = junction=roundabout assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link assign isgoodforcars = if greater priorityclassifier 6 then true else if ( or highway=residential|living_street|service living_street=yes ) then true else if ( and highway=track tracktype=grade1 ) then true else false assign classifiermask add isbadoneway add multiply isgoodoneway 2 add multiply isroundabout 4 add multiply islinktype 8 multiply isgoodforcars 16 ---context:node # following code refers to node tags # Parameter für Knotenpunkte # Kosten an Knotenpunkten in Meter 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 and not or highway=crossing ignore_bicycle_no bicycle=no bicycle=dismount 0 1 assign footaccess or bicycle=dismount switch foot= defaultaccess switch or foot=private foot=no 0 1 assign initialcost add switch highway=traffic_signals 200 # Kosten für Ampel switch highway=stop 150 # Kosten für Stoppschild switch railway=crossing|level_crossing 200 # Kosten für Bahnübergang 0 switch bikeaccess 0 switch footaccess 10000 # Kosten fürs Absteigen 1000000 #Kosten für verbotene oder private Wege