-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenduro.brf
352 lines (318 loc) · 14.2 KB
/
enduro.brf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
# Erklärung der Operatoren:
# http://brouter.de/brouter/profile_developers_guide.txt
# Test der Datei:
# http://brouter.de/brouter-web/
# Unter "Data csv" kann man sich die zur Berechnung herangezogenen
# Parameter und OSM-Tacks anschauen.
# Die Versionen von Brouter scheinen aber nicht immer gleich,
# daher unbedingt auch am dem Handy testen. Insbesondere sind einige
# OSM-Tacks nicht jeder Version bekannt. Was ausgewertet wird, steht
# in der Datei "lookups.dat"
#
# Bezeichnung der Wege entnimmt man am besten dem Bearbeitungsmodus
# aus https://www.openstreetmap.org/
#
# ---------------------------------------------------------------------
#
# Grundsätzlich berechnet diese Profildatei die "Kosten" für ein Wegstück in
# Punkten. Bestimmte Eigenschaften eines Weges verursachen solche Kosten.
# Wie hoch die Kosten jeweils sind, legt das Profil in Form von
# addierten Strafpunkten fest. Wege verursachen Kosten pro Meter,
# deshalb müssen die Strafpunkte absolut gesehen gering angesetzt werden.
# Einmalige oder seltene Eigenschaften wie Treppen, Fähren, Verbotsschilder,
# Sackgassen ... müssen mit hohen Punkten angesetzt werden, damit sie eine
# Wirkung haben.
# Der Kostenfaktor muss möglichst nahe bei 1 sein für die Art von Wegen,
# die man sucht, weil sonst durch die Art der Berechnungsmethode das
# "Suchgebiet" zu gross wird und die Berchnung dann zu lange dauert.
# Und er darf nicht kleiner als 1 sein, weil sonst die Berechnung nicht
# mehr funktioniert.
# Die Gesamtkosten (cost = costfactor*distance[m]) eines Abschnittes zeigt
# die Statsitik in http://brouter.de/brouter-web/ jeweils an.
#
# Am Ende der Datei, dort wo === Profil ANPASSEN === drüber steht, kann
# man das Profil grob an die eigenen Bedürfnisse anpassen.
#
# ---------------------------------------------------------------------
#
---context:global # following code refers to global config
# Kinematic model parameters (travel time computation)
assign totalMass = 210 # %totalMass% | Mass (in kg) of the bike + biker, for travel time computation | number
assign maxSpeed = 60 # %maxSpeed% | Absolute maximum speed (in km/h), for travel time computation | number
assign S_C_x = 0.225 # %S_C_x% | Drag coefficient times the reference area (in m^2), for travel time computation | number
assign C_r = 0.01 # %C_r% | Rolling resistance coefficient (dimensionless), for travel time computation | number
assign bikerPower = 30000 # %bikerPower% | Average power (in W) provided by the biker, for travel time computation | number
# Turn instructions settings
assign turnInstructionMode = 1 # %turnInstructionMode% | Mode for the generated turn instructions | [0=none, 1=auto-choose, 2=locus-style, 3=osmand-style, 4=comment-style, 5=gpsies-style, 6=orux-style]
assign turnInstructionCatchingRange = 40 # %turnInstructionCatchingRange% | Within this distance (in m) several turning instructions are combined into one and the turning angles are better approximated to the general direction | number
assign turnInstructionRoundabouts = false # %turnInstructionRoundabouts% | Set to "false" to avoid generating special turning instructions for roundabouts | boolean
#
#=============== Profil ANPASSEN ==================
#
assign MglLegal 0 # 1 setzen, um möglichst legale Wege zu bevorzugen
assign Abgeschieden 1 # 1 setzen, für Endurowandern in kaum erschlossenen Gegenden
#
# ==================================================
#
# Hiermit wird der Routing Algorithmus verändert:
# http://brouter.de/brouter/algorithm.html
#
# Werte für den ersten Koeffizienten:
# 1 = exakte Berrechnung beim ersten Durchlauf
# => je größer der Wert desto schneller aber auch ungenauer die Berrechnung
#
# Werte für den zweiten Koeffizienten:
# 0 = exakte Berrechnung mit Beschränkung des Suchgebiets über die Kosten der ersten Berrechnung
# -1 = keine zweite Berrechnung, sinnvoll eigentlich nur bei "1" im ersten Durchlauf
#
# Hier eine schnelle, aber noch obiger Theorie ungenaue Berechnungsmethode.
# Bei mir ca. Faktor 2-4 schneller. Bei Routen, die Brouter im normalen Modus
# nicht innerhalb von 60s berechnen konnte, lief die Berechnung hiermit
# innerhalb von 20s durch!
# Ergebnisse sind ersten Tests zufolge nicht nennenswert schlechter.
# Im Zweifel auskommentieren.
assign pass1coefficient 2 # Berrechnugscoeffizient für erste schnelle Berrechnung
assign pass2coefficient -1 # Berrechnugscoeffizient für zweite exakte Berrechnung
# the elevation parameters
# cutoff ist die Steigung in %, ab der bestraft wird, aber wer will
# schon Steigungen bestrafen? Also 0 Strafpunkte. Steigungen werden erst
# ab 10m Steigungsstreckenlänge berücksichtigt. Negative Werte wirken nicht.
#
# Change elevation parameters
assign consider_elevation = false # %consider_elevation% | Set to false to ignore elevation in routing | boolean
assign downhillcost = 60 # %downhillcost% | Cost for going downhill | number
assign downhillcutoff = 1.5 # %downhillcutoff% | Gradients below this value in percents are not counted. | number
assign uphillcost = 0 # %uphillcost% | Cost for going uphill | number
assign uphillcutoff = 1.5 # %uphillcutoff% | Gradients below this value in percents are not counted. | number
assign downhillcost = if consider_elevation then downhillcost else 0
assign uphillcost = if consider_elevation then uphillcost else 0
assign elevationmaxbuffer 10
---context:way # following code refers to way-tags
#
# "turncost" bestimmt, was es kostet, einen sehr engen Winkel zu fahren.
# Die Winkelkosten sind: turncost * ( 1 - cos(winkel) )
# cos(90°) = 0, also Höchststrafe für 90° Winkel.
# Konkret entspricht der truncost-Wert damit den Kosten einer 90-Grad
# Biegung in Metern. turncost=100 => eine 90° Biegung wird wie eine
# zusätzliche Strecke von 10mm gewertet.
#
# Damit werden also in jedem Fall durchgehende Strecken bevorzugt,
# was aber für Enduro nicht hilfreich ist.
# truncost wirkt besonders bei sehr enegen Kehren oder Abbiegungen,
# weniger oder gar nicht bei Kurven.
# Setzt man den Wert zu niedrig, werden auch gerne 180° Winkel
# eingesetzt => also "umdrehen" wäre destöfteren angesagt, wenn man
# bestimmte Wegpunkte anfahren will.
# Der Wert ist also stark abhängig von der Gegend, will man enge Kehren fahren,
# sollte der Wert nahe 0 bleiben, auf dem flachen Land setzt man ihn eher
# hoch an, um zumindest nicht zu oft umkehren zu müssen. Wenn man nur zwischen
# 2 Punkten navigiert, spielt das Umkehren aber keine Rolle.
assign turncost 0
#
# Zugangsberechtigungen interessieren nicht:
#
assign defaultaccess 0
assign WegeAlle
# Die Kosten werden pro Meter Wegstrecke erechnet.
# Sie werden abe rnicht addiert, sondern brouter steigt aus diesem
# Abschnitt aus, sobald eine Bedingung wahr wird.
# => Spezielle Eigenchaften eines Weges müssen oben stehen, sonst
# kommen sie nicht zur Geltung.
# => Allgemeime Angaben - etwa: Asphaltoberfläche - würden dazu führen,
# dass alle asphaltierten Wege gleich gewichtet werden, also Autobahnen
# und Feldwege (sofern denn das OSM Tag überhaupt angegeben ist).
# Die Eigenschaften eines Weges sollten also im Kontext dieses Weges
# stehen, also etwa "tracktype=grade1 AND surface=asphalt"
#
# Zum Verständnis:
# switch highway=track
# <switch Nähere Beschreibung(en) mit Strafpunkten falls zutreffend>
# ...
# <Strafpunkte falls keine der Beschreibungen zutrifft>
#
switch highway=track
# Das aussagekräftigste Kriterium dürfte vorliegen, wenn der Weg
# für MTB klassifiziert wurde, daher werte ich das zuerst aus.
# In den Alpen sind die viele Weg entsprechend klassifiziert.
# http://wiki.openstreetmap.org/wiki/DE:Key:mtb:scale
#
# Das ginge natürlich auch für Wanderwege, aber die sind zum
# Endurowandern eher ungeeignet:
# http://wiki.openstreetmap.org/wiki/DE:Key:sac_scale
#
# MTB-Scale 0 und 1 sind zum Endurowandern vermutlich gut geeignet,
# darüber ist es vielleicht eher für Sportfahrer.
# => entsprechend anpassen:
#
switch mtb:scale=0 1.0
switch mtb:scale=1 2.0
switch mtb:scale=2 4.0
switch mtb:scale=3 10.0
switch or mtb:scale=4 or mtb:scale=5 mtb:scale=6 20
switch sac_scale=hiking 4.0
switch sac_scale=mountain_hiking 4.0
switch sac_scale=demanding_mountain_hiking 2.0
switch sac_scale=alpine_hiking 1.0
#
# Die Oberflächenbeschaffenheit ist den OSM Karten eher selten
# verzeichnet, wenn doch, ist sie meist aussagekräftiger als tracktype,
# daher zuvor auswerten:
#
switch or surface=paved or surface=cobblestone or surface=concrete surface=asphalt 5.5
switch surface=gravel 3.0
switch or surface=pebblestone surface=fine_gravel 2.5
switch or surface=ground or surface=dirt surface=earth or surface=grass 0.5
switch surface=sand 0.2
#
# wenn all das nicht zutrifft, dann entscheiden wir nach Tracktype.
# Grundsätzlich bevorzuge ich schlechte Wege, je nach Gegend sind die Wege
# nach Grade 4-5 allerdings kaum noch als soche zu erkennen oder
# gar nicht (mehr?) vorhanden. Oder etwa in den Alpen nur noch
# für Sportenduros zu befahren.
#
# Entsprechend der Gegend werden weiter unten Zusatzkosten addiert.
#
switch tracktype=grade1 5.0
switch tracktype=grade2 4.5
switch tracktype=grade3 2.5
switch tracktype=grade4 1.1
switch tracktype=grade5 1.0
# alle sonstigen Tracks:
2.5
#
# Pfade
#
# zunächst ausgewiesene Fuß- und Radwege meiden:
switch highway=footway 30
switch and highway=path foot=designated 50
switch highway=cycleway 15
switch and highway=path bicycle=designated 25
#
# Die folgenden Werte für Pfade passen so für erschlossene Gegenden,
# weil es hier meist Fußwege sind, die ich eher nicht befahren
# will. Bei uns sind sogar die Friedhofswege in OSM verzeichnet!
# Wer in abgelegenen Gegenden gerne Singletrails fährt, muss
# diese Werte herabsetzen.
#
switch highway=path
#
# Fahrradverbot ist auch für Mopeds kein gutes Zeichen:
switch bicycle=no 30
#
# Spazierwege (route_foot_xxx) sind meist nicht zum Befahren geeignet,
# Wanderwege (route_hiking_xxx) schon eher, lasse ich daher raus
switch or route_foot_nwn=yes or route_foot_lwn=yes route_foot_rwn=yes 30
#
# Oberflächen:
switch or surface=paved or surface=cobblestone or surface=concrete surface=asphalt 10
switch or surface=gravel or surface=pebblestone surface=fine_gravel 6.0
switch or surface=sand or surface=ground or surface=dirt or surface=earth surface=grass 2.5
#
# sonstige Pfade (Zusatzkosten unten beachten!)
0
#
# Straßen
#
# Autobahnen:
switch or highway=motorway highway=motorway_link 20
switch or highway=trunk highway=trunk_link 14
switch or highway=primary highway=primary_link 10
switch or highway=secondary highway=secondary_link 8
switch or highway=tertiary highway=tertiary_link 6
switch highway=unclassified 5
#
# stillgelegte oder im Bau befindliche Straßen
switch or highway=proposed highway=abandoned 3
#
# Wohngebiete, private Zufahrtswege u.ä.
switch highway=residential 6
switch highway=service 8
# Da ich mich nicht um Zugangsrechte kümmere, müssen bestimmte Strecken
# hier mit einer hohen Strafe belegt werden:
switch or railway=disused railway=abandoned 30
switch or not railway= not waterway= 100000
4 #sonstige Straßen und Wege
# --------------------------
# Zusatzkosten der Profile:
#
assign Zusatzkosten switch Abgeschieden
#
# falls die Variable "Abgeschieden" = 1 gesetzt ist, wird dieser Wert
# errechnet:
#
# Kosten für schlechte Wege in wenig erschlossenen Gebieten höher setzen
# da diese Wege dort dann eher für Sportenduros taugen
# (Werte werden addiert)
#
switch highway=track
switch tracktype=grade3 0.5
switch tracktype=grade4 2.0
switch tracktype=grade5 3.0
0
switch highway=path 3.0
0 # fuer Sonstiges nichts addieren
#
# .... sonst dieser für die in Deutschland eher typische urbane Umgebung:
#
# Kosten für Pfade in gut erschlossenen Gegenden addieren, da man sie dort
# eher seltener nutzen sollte:
#
switch highway=path 6.0
0 # fuer Sonstiges nichts addieren
#
# ... und der Variablen "Zusatzkosten" zugewiesen.
#
# --------------------------
#
# nur falls die Variable "MglLegal" = 1 gesetzt ist , wird der Wert
# errechnet und der Variablen "illegal" zugewiesen ...
#
assign illegal switch MglLegal
#
# Soweit es in OSM angegebenist, werden hie rzu Zugangsberechtigungen ausgewertet.
# Wenn diese egal sind => unter "assign costfactor" Kommentarzeichen einfügen
#
# Zugangsberechtigungen
#
switch or access=no or access=private or access=agricultural
or vehicle=no or vehicle=private or vehicle=agricultural or vehicle=destination
or motorcar=no or motorcar=private or motorcar=agricultural
or motorcycle=no or motorcycle=private or motorcycle=agricultural
or motor_vehicle=no or motor_vehicle=private or motor_vehicle=agricultural or motor_vehicle=destination
or horse=designated or bicycle=designated foot=designated
100 # Der Wert hier wird mal 1000 gerechnet!
# Fuß-, Reit- und Radwege sowie Pfade verbieten
#
switch highway=footway 10000
switch highway=bridleway 10000
switch highway=cycleway 10000
switch and highway=path
or motorcar=yes or motor_vehicle=yes motorcycle=yes 0
switch highway=path 10000
0 #wenn nichts angegeben
0 # ... falls "MglLegal" = 0 gesetzt, werden 0 Kosten zugewiesen
#
# Kosten addierenden:
#
assign costfactor
add WegeAlle
add Zusatzkosten
add illegal
0
---context:node # following code refers to node tags
#
# Nodes sind Eigenschaften eines Wegpunktes, nicht solche des gesamten Weges.
# Also etwa Brücken, Kreuzungen, Hindernisse, Ampeln u.s.w.
# Aber auch der Anfang und das Ende eines Weges.
# Minimum sind also 2 Nodes (Ausnahme: Kreisverkehr), max 2000.
#
# Barrieren gehen nur in diesem Kontext. Sind oft zu umfahren, daher
# nicht komplett sperren.
#
# === Node Kosten NICHT GETESTET ===
#
assign initialcost
# Barrieren kosten, falls MglLegal=1 gesetzt ist, 10000 Punkte, sonst nur 2000, 0 wenn keine Angabe
switch MglLegal
switch or barrier=gate or barrier=bollard or barrier=lift_gate barrier=cycle_barrier 10000 2000
0