Check out the latest version of Routino: svn co http://routino.org/svn/trunk routino
Contents of /trunk/xml/routino-tagging.xml
Parent Directory
|
Revision Log
Revision 2182 -
(show annotations)
(download)
(as text)
Tue Aug 29 10:28:26 2023 UTC (18 months, 2 weeks ago) by amb
File MIME type: application/xml
File size: 42909 byte(s)
Tue Aug 29 10:28:26 2023 UTC (18 months, 2 weeks ago) by amb
File MIME type: application/xml
File size: 42909 byte(s)
Update the way tagging, minor changes.
1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | |
3 | <!-- ============================================================ |
4 | An XML format file containing Routino tagging rules |
5 | |
6 | Part of the Routino routing software. |
7 | ============================================================ |
8 | This file Copyright 2010-2015, 2018, 2019, 2020, 2021, 2022, 2023 Andrew M. Bishop |
9 | |
10 | This program is free software: you can redistribute it and/or modify |
11 | it under the terms of the GNU Affero General Public License as published by |
12 | the Free Software Foundation, either version 3 of the License, or |
13 | (at your option) any later version. |
14 | ============================================================ --> |
15 | |
16 | <routino-tagging xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
17 | xsi:noNamespaceSchemaLocation="http://www.routino.org/xml/routino-tagging.xsd"> |
18 | |
19 | <!-- - - - - - - - - - - Node rules - - - - - - - - - - --> |
20 | |
21 | <node> |
22 | |
23 | <!-- Add barrier tags to quasi-barriers that are not tagged as barriers --> |
24 | |
25 | <ifnot k="barrier"> |
26 | |
27 | <if k="entrance"> |
28 | <set k="barrier" v="entrance"/> |
29 | </if> |
30 | |
31 | <if k="railway" v="level_crossing"> |
32 | <set k="barrier" v="level_crossing"/> |
33 | </if> |
34 | |
35 | <if k="ford"> |
36 | <set k="barrier" v="ford"/> |
37 | </if> |
38 | |
39 | </ifnot> |
40 | |
41 | <!-- Note: The default is that all transport types are allowed past a barrier |
42 | unless it is specifically recognised here; access must be specified |
43 | to disallow each transport type. --> |
44 | |
45 | <if k="barrier"> |
46 | |
47 | <!-- Barriers that are too generic to determine default access --> |
48 | |
49 | <if k="barrier" v="door" > <unset/> </if> |
50 | |
51 | <if k="barrier" v="gate" > <unset/> </if> |
52 | <if k="barrier" v="lift_gate" > <unset/> </if> |
53 | <if k="barrier" v="swing_gate" > <unset/> </if> |
54 | <if k="barrier" v="sliding_gate" > <unset/> </if> |
55 | <if k="barrier" v="hampshire_gate"> <unset/> </if> |
56 | |
57 | <if k="barrier" v="block" > <unset/> </if> |
58 | <if k="barrier" v="jersey_barrier"> <unset/> </if> |
59 | <if k="barrier" v="debris" > <unset/> </if> |
60 | <if k="barrier" v="kerb" > <unset/> </if> |
61 | |
62 | <if k="barrier" v="chicane" > <unset/> </if> |
63 | |
64 | <if k="barrier" v="gap" > <unset/> </if> |
65 | <if k="barrier" v="entrance" > <unset/> </if> |
66 | <if k="barrier" v="sally_port" > <unset/> </if> |
67 | |
68 | <if k="barrier" v="toll_booth" > <unset/> </if> |
69 | <if k="barrier" v="border_control"> <unset/> </if> |
70 | |
71 | <if k="barrier" v="ford" > <unset/> </if> |
72 | |
73 | <if k="barrier" v="level_crossing"> <unset/> </if> |
74 | |
75 | <!-- Barriers that imply no access (as a default) --> |
76 | |
77 | <if k="barrier" v="wall" > <set v="no_access"/> </if> |
78 | <if k="barrier" v="fence"> <set v="no_access"/> </if> |
79 | <if k="barrier" v="hedge"> <set v="no_access"/> </if> |
80 | |
81 | <if k="barrier" v="no_access"> |
82 | <output k="foot" v="no"/> |
83 | <output k="horse" v="no"/> |
84 | <output k="wheelchair" v="no"/> |
85 | <output k="bicycle" v="no"/> |
86 | <output k="moped" v="no"/> |
87 | <output k="motorcycle" v="no"/> |
88 | <output k="motorcar" v="no"/> |
89 | <output k="goods" v="no"/> |
90 | <output k="hgv" v="no"/> |
91 | <output k="psv" v="no"/> |
92 | |
93 | <unset k="barrier"/> |
94 | </if> |
95 | |
96 | <!-- Barriers that imply foot-only access (as a default) --> |
97 | |
98 | <if k="barrier" v="kissing_gate" > <set v="foot_only"/> </if> |
99 | <if k="barrier" v="footgate" > <set v="foot_only"/> </if> |
100 | <if k="barrier" v="lych_gate" > <set v="foot_only"/> </if> |
101 | <if k="barrier" v="wicket_gate" > <set v="foot_only"/> </if> |
102 | <if k="barrier" v="stile" > <set v="foot_only"/> </if> |
103 | <if k="barrier" v="v_stile" > <set v="foot_only"/> </if> |
104 | <if k="barrier" v="full-height_turnstile"> <set v="foot_only"/> </if> |
105 | <if k="barrier" v="turnstile" > <set v="foot_only"/> </if> |
106 | <if k="barrier" v="squeeze" > <set v="foot_only"/> </if> |
107 | <if k="barrier" v="squeeze_stile" > <set v="foot_only"/> </if> |
108 | |
109 | <if k="barrier" v="foot_only"> |
110 | <output k="horse" v="no"/> |
111 | <output k="wheelchair" v="no"/> |
112 | <output k="bicycle" v="no"/> |
113 | <output k="moped" v="no"/> |
114 | <output k="motorcycle" v="no"/> |
115 | <output k="motorcar" v="no"/> |
116 | <output k="goods" v="no"/> |
117 | <output k="hgv" v="no"/> |
118 | <output k="psv" v="no"/> |
119 | |
120 | <unset k="barrier"/> |
121 | </if> |
122 | |
123 | <!-- Barriers that imply no wheeled access (as a default) --> |
124 | |
125 | <if k="barrier" v="horse_stile"> <set v="not_wheeled"/> </if> |
126 | <if k="barrier" v="horse_jump" > <set v="not_wheeled"/> </if> |
127 | <if k="barrier" v="step_over" > <set v="not_wheeled"/> </if> |
128 | <if k="barrier" v="chain" > <set v="not_wheeled"/> </if> |
129 | <if k="barrier" v="log" > <set v="not_wheeled"/> </if> |
130 | <if k="barrier" v="tree" > <set v="not_wheeled"/> </if> |
131 | <if k="barrier" v="fallen_tree"> <set v="not_wheeled"/> </if> |
132 | <if k="barrier" v="bar" > <set v="not_wheeled"/> </if> |
133 | |
134 | <if k="barrier" v="not_wheeled"> |
135 | <output k="wheelchair" v="no"/> |
136 | <output k="bicycle" v="no"/> |
137 | <output k="moped" v="no"/> |
138 | <output k="motorcycle" v="no"/> |
139 | <output k="motorcar" v="no"/> |
140 | <output k="goods" v="no"/> |
141 | <output k="hgv" v="no"/> |
142 | <output k="psv" v="no"/> |
143 | |
144 | <unset k="barrier"/> |
145 | </if> |
146 | |
147 | <!-- Barriers that imply no horse access (as a default) --> |
148 | |
149 | <if k="barrier" v="horse_barrier"> <set v="no_horse"/> </if> |
150 | <if k="barrier" v="cattle_grid" > <set v="no_horse"/> </if> |
151 | |
152 | <if k="barrier" v="no_horse"> |
153 | <output k="horse" v="no"/> |
154 | |
155 | <unset k="barrier"/> |
156 | </if> |
157 | |
158 | <!-- Barriers that imply no motor vehicle access (as a default) --> |
159 | |
160 | <if k="barrier" v="cycle_barrier" > <set v="no_motorised"/> </if> |
161 | <if k="barrier" v="motorcycle_barrier"> <set v="no_motorised"/> </if> |
162 | |
163 | <if k="barrier" v="no_motorised"> |
164 | <output k="moped" v="no"/> |
165 | <output k="motorcycle" v="no"/> |
166 | <output k="motorcar" v="no"/> |
167 | <output k="goods" v="no"/> |
168 | <output k="hgv" v="no"/> |
169 | <output k="psv" v="no"/> |
170 | |
171 | <unset k="barrier"/> |
172 | </if> |
173 | |
174 | <!-- Barriers that imply no wide motor vehicle access (as a default) --> |
175 | |
176 | <if k="barrier" v="bollard" > <set v="not_2plus_wheels"/> </if> |
177 | <if k="barrier" v="post" > <set v="not_2plus_wheels"/> </if> |
178 | <if k="barrier" v="car_barrier"> <set v="not_2plus_wheels"/> </if> |
179 | <if k="barrier" v="car_trap" > <set v="not_2plus_wheels"/> </if> |
180 | <if k="barrier" v="planter" > <set v="not_2plus_wheels"/> </if> |
181 | |
182 | <if k="barrier" v="not_2plus_wheels"> |
183 | <output k="motorcar" v="no"/> |
184 | <output k="goods" v="no"/> |
185 | <output k="hgv" v="no"/> |
186 | <output k="psv" v="no"/> |
187 | |
188 | <unset k="barrier"/> |
189 | </if> |
190 | |
191 | <!-- Log any remaining, unrecognised, barriers that do not have a generic access permission --> |
192 | |
193 | <if k="barrier"> |
194 | <ifnot k="access"> |
195 | <logerror k="barrier" message="no 'access' tag so assuming access='yes' plus tagged restrictions"/> |
196 | </ifnot> |
197 | </if> |
198 | |
199 | |
200 | <!-- Normalisation of access tag keys --> |
201 | |
202 | <ifnot k="foot" > <if k="access:foot" > <set k="foot" /> </if> </ifnot> |
203 | <ifnot k="horse" > <if k="access:horse" > <set k="horse" /> </if> </ifnot> |
204 | <ifnot k="wheelchair"> <if k="access:wheelchair"> <set k="wheelchair"/> </if> </ifnot> |
205 | <ifnot k="bicycle" > <if k="access:bicycle" > <set k="bicycle" /> </if> </ifnot> |
206 | <ifnot k="moped" > <if k="access:moped" > <set k="moped" /> </if> </ifnot> |
207 | <ifnot k="motorcycle"> <if k="access:motorcycle"> <set k="motorcycle"/> </if> </ifnot> |
208 | <ifnot k="motorcar" > <if k="access:motorcar" > <set k="motorcar" /> </if> </ifnot> |
209 | <ifnot k="goods" > <if k="access:goods" > <set k="goods" /> </if> </ifnot> |
210 | <ifnot k="hgv" > <if k="access:hgv" > <set k="hgv" /> </if> </ifnot> |
211 | <ifnot k="psv" > <if k="access:psv" > <set k="psv" /> </if> </ifnot> |
212 | |
213 | <!-- Normalisation of access tag values --> |
214 | |
215 | <if v="designated" > <set v="yes"/> </if> |
216 | <if v="permissive" > <set v="yes"/> </if> |
217 | <if v="true" > <set v="yes"/> </if> |
218 | <if v="public" > <set v="yes"/> </if> |
219 | <if v="official" > <set v="yes"/> </if> |
220 | |
221 | <if v="destination" > <set v="no"/> </if> |
222 | <if v="permit" > <set v="no"/> </if> |
223 | <if v="customer" > <set v="no"/> </if> |
224 | <if v="customers" > <set v="no"/> </if> |
225 | <if v="delivery" > <set v="no"/> </if> |
226 | <if v="residents" > <set v="no"/> </if> |
227 | <if v="private" > <set v="no"/> </if> |
228 | |
229 | <if v="unknown" > <set v="no"/> </if> |
230 | <if v="construction"> <set v="no"/> </if> |
231 | <if v="unsuitable" > <set v="no"/> </if> |
232 | <if v="limited" > <set v="no"/> </if> |
233 | <if v="restricted" > <set v="no"/> </if> |
234 | <if v="agricultural"> <set v="no"/> </if> |
235 | <if v="forestry" > <set v="no"/> </if> |
236 | <if v="emergency" > <set v="no"/> </if> |
237 | |
238 | <!-- Generic access permissions for all transport types (to override defaults) --> |
239 | |
240 | <if k="access"> |
241 | |
242 | <ifnot k="access" v="yes"> |
243 | <output k="foot" v="no"/> |
244 | <output k="horse" v="no"/> |
245 | <output k="wheelchair" v="no"/> |
246 | <output k="bicycle" v="no"/> |
247 | <output k="moped" v="no"/> |
248 | <output k="motorcycle" v="no"/> |
249 | <output k="motorcar" v="no"/> |
250 | <output k="goods" v="no"/> |
251 | <output k="hgv" v="no"/> |
252 | <output k="psv" v="no"/> |
253 | |
254 | <if k="access" v="foot"> |
255 | <set k="foot" v="yes"/> |
256 | <logerror k="access" message="using 'access' = 'no' ; 'foot' = 'yes'"/> |
257 | <set k="access" v="no"/> |
258 | </if> |
259 | |
260 | <ifnot k="access" v="no"> |
261 | <logerror k="access" message="using 'no'"/> |
262 | </ifnot> |
263 | |
264 | </ifnot> |
265 | |
266 | </if> <!-- k="access" --> |
267 | |
268 | <!-- Generic access permissions for classes of transport types --> |
269 | |
270 | <if k="vehicle"> |
271 | |
272 | <ifnot k="vehicle" v="yes"> |
273 | <output k="bicycle" v="no"/> |
274 | <output k="moped" v="no"/> |
275 | <output k="motorcycle" v="no"/> |
276 | <output k="motorcar" v="no"/> |
277 | <output k="goods" v="no"/> |
278 | <output k="hgv" v="no"/> |
279 | <output k="psv" v="no"/> |
280 | |
281 | <ifnot k="vehicle" v="no"> |
282 | <logerror k="vehicle" message="using 'no'"/> |
283 | </ifnot> |
284 | </ifnot> |
285 | |
286 | </if> <!-- k="vehicle" --> |
287 | |
288 | <if k="motor_vehicle"> |
289 | |
290 | <ifnot k="motor_vehicle" v="yes"> |
291 | <output k="moped" v="no"/> |
292 | <output k="motorcycle" v="no"/> |
293 | <output k="motorcar" v="no"/> |
294 | <output k="goods" v="no"/> |
295 | <output k="hgv" v="no"/> |
296 | <output k="psv" v="no"/> |
297 | |
298 | <ifnot k="motor_vehicle" v="no"> |
299 | <logerror k="motor_vehicle" message="using 'no'"/> |
300 | </ifnot> |
301 | </ifnot> |
302 | |
303 | </if> <!-- k="motor_vehicle" --> |
304 | |
305 | <!-- Specific access rules (to override the generic ones) --> |
306 | |
307 | <if k="foot" > <output/> </if> |
308 | <if k="horse" > <output/> </if> |
309 | <if k="wheelchair"> <output/> </if> |
310 | <if k="bicycle" > <output/> </if> |
311 | <if k="moped" > <output/> </if> |
312 | <if k="motorcycle"> <output/> </if> |
313 | <if k="motorcar" > <output/> </if> |
314 | <if k="goods" > <output/> </if> |
315 | <if k="hgv" > <output/> </if> |
316 | <if k="psv" > <output/> </if> |
317 | |
318 | </if> <!-- k="barrier" --> |
319 | |
320 | <!-- Mini-roundabouts --> |
321 | |
322 | <if k="highway" v="mini_roundabout"> |
323 | <output k="roundabout" v="yes"/> |
324 | </if> |
325 | |
326 | <if k="junction" v="roundabout"> |
327 | <output k="roundabout" v="yes"/> |
328 | </if> |
329 | |
330 | </node> |
331 | |
332 | <!-- - - - - - - - - - - Way rules - - - - - - - - - - --> |
333 | |
334 | <way> |
335 | |
336 | <!-- Note: The default is that no transport type is allowed on any highway; |
337 | access must be specified to allow each transport type. --> |
338 | |
339 | <ifnot k="highway"> |
340 | |
341 | <if k="route" v="ferry"> |
342 | <set k="highway" v="ferry"/> |
343 | </if> |
344 | |
345 | <if k="public_transport" v="platform"> |
346 | <set k="highway" v="platform"/> |
347 | </if> |
348 | |
349 | <if k="railway" v="platform"> |
350 | <set k="highway" v="platform"/> |
351 | </if> |
352 | |
353 | </ifnot> |
354 | |
355 | <if k="highway"> |
356 | |
357 | <!-- Not useful highway types (future highways) --> |
358 | |
359 | <if k="highway" v="construction"> <unset/> </if> |
360 | <if k="highway" v="planned" > <unset/> </if> |
361 | <if k="highway" v="proposed" > <unset/> </if> |
362 | |
363 | <!-- Not useful highway types (previous highways) --> |
364 | |
365 | <if k="highway" v="no" > <unset/> </if> |
366 | <if k="highway" v="abandoned" > <unset/> </if> |
367 | <if k="highway" v="disused" > <unset/> </if> |
368 | |
369 | <!-- Not useful highway types (limited use highways) --> |
370 | |
371 | <if k="highway" v="raceway" > <unset/> </if> |
372 | |
373 | <!-- Motorway types (includes default access and default properties) --> |
374 | |
375 | <if k="highway" v="motorway_link"> |
376 | <set v="motorway"/> |
377 | </if> |
378 | |
379 | <if k="highway" v="motorway"> |
380 | <output k="highway"/> |
381 | |
382 | <output k="motorcycle" v="yes"/> |
383 | <output k="motorcar" v="yes"/> |
384 | <output k="goods" v="yes"/> |
385 | <output k="hgv" v="yes"/> |
386 | <output k="psv" v="yes"/> |
387 | |
388 | <output k="paved" v="yes"/> |
389 | <output k="multilane" v="yes"/> |
390 | <output k="oneway" v="yes"/> |
391 | |
392 | <unset k="highway"/> |
393 | </if> |
394 | |
395 | <!-- Trunk road types (includes default access and default properties) --> |
396 | |
397 | <if k="highway" v="trunk_link"> |
398 | <set v="trunk"/> |
399 | </if> |
400 | |
401 | <if k="highway" v="trunk"> |
402 | <output k="highway"/> |
403 | |
404 | <output k="bicycle" v="yes"/> |
405 | <output k="moped" v="yes"/> |
406 | <output k="motorcycle" v="yes"/> |
407 | <output k="motorcar" v="yes"/> |
408 | <output k="goods" v="yes"/> |
409 | <output k="hgv" v="yes"/> |
410 | <output k="psv" v="yes"/> |
411 | |
412 | <output k="paved" v="yes"/> |
413 | |
414 | <unset k="highway"/> |
415 | </if> |
416 | |
417 | <!-- Primary road types (includes default access and default properties) --> |
418 | |
419 | <if k="highway" v="primary_link"> |
420 | <set v="primary"/> |
421 | </if> |
422 | |
423 | <if k="highway" v="primary"> |
424 | <output k="highway"/> |
425 | |
426 | <output k="foot" v="yes"/> |
427 | <output k="horse" v="yes"/> |
428 | <output k="wheelchair" v="no" /> |
429 | <output k="bicycle" v="yes"/> |
430 | <output k="moped" v="yes"/> |
431 | <output k="motorcycle" v="yes"/> |
432 | <output k="motorcar" v="yes"/> |
433 | <output k="goods" v="yes"/> |
434 | <output k="hgv" v="yes"/> |
435 | <output k="psv" v="yes"/> |
436 | |
437 | <output k="paved" v="yes"/> |
438 | |
439 | <unset k="highway"/> |
440 | </if> |
441 | |
442 | <!-- Secondary road types (includes default access and default properties) --> |
443 | |
444 | <if k="highway" v="secondary_link"> |
445 | <set v="secondary"/> |
446 | </if> |
447 | |
448 | <if k="highway" v="secondary"> |
449 | <output k="highway"/> |
450 | |
451 | <output k="foot" v="yes"/> |
452 | <output k="horse" v="yes"/> |
453 | <output k="wheelchair" v="yes"/> |
454 | <output k="bicycle" v="yes"/> |
455 | <output k="moped" v="yes"/> |
456 | <output k="motorcycle" v="yes"/> |
457 | <output k="motorcar" v="yes"/> |
458 | <output k="goods" v="yes"/> |
459 | <output k="hgv" v="yes"/> |
460 | <output k="psv" v="yes"/> |
461 | |
462 | <output k="paved" v="yes"/> |
463 | |
464 | <unset k="highway"/> |
465 | </if> |
466 | |
467 | <!-- Tertiary road types (includes default access and default properties) --> |
468 | |
469 | <if k="highway" v="tertiary_link"> |
470 | <set v="tertiary"/> |
471 | </if> |
472 | |
473 | <if k="highway" v="tertiary"> |
474 | <output k="highway"/> |
475 | |
476 | <output k="foot" v="yes"/> |
477 | <output k="horse" v="yes"/> |
478 | <output k="wheelchair" v="yes"/> |
479 | <output k="bicycle" v="yes"/> |
480 | <output k="moped" v="yes"/> |
481 | <output k="motorcycle" v="yes"/> |
482 | <output k="motorcar" v="yes"/> |
483 | <output k="goods" v="yes"/> |
484 | <output k="hgv" v="yes"/> |
485 | <output k="psv" v="yes"/> |
486 | |
487 | <output k="paved" v="yes"/> |
488 | |
489 | <unset k="highway"/> |
490 | </if> |
491 | |
492 | <!-- Unclassified road types (includes default access and default properties) --> |
493 | |
494 | <if k="highway" v="minor"> |
495 | <set k="highway" v="unclassified"/> |
496 | </if> |
497 | |
498 | <if k="highway" v="road"> |
499 | <set k="highway" v="unclassified"/> |
500 | </if> |
501 | |
502 | <if k="highway" v="unclassified"> |
503 | <output k="highway"/> |
504 | |
505 | <output k="foot" v="yes"/> |
506 | <output k="horse" v="yes"/> |
507 | <output k="wheelchair" v="yes"/> |
508 | <output k="bicycle" v="yes"/> |
509 | <output k="moped" v="yes"/> |
510 | <output k="motorcycle" v="yes"/> |
511 | <output k="motorcar" v="yes"/> |
512 | <output k="goods" v="yes"/> |
513 | <output k="hgv" v="yes"/> |
514 | <output k="psv" v="yes"/> |
515 | |
516 | <output k="paved" v="yes"/> |
517 | |
518 | <unset k="highway"/> |
519 | </if> |
520 | |
521 | <!-- Residential road types (includes default access and default properties) --> |
522 | |
523 | <if k="highway" v="living_street"> |
524 | <set k="highway" v="residential"/> |
525 | </if> |
526 | |
527 | <if k="highway" v="residential"> |
528 | <output k="highway"/> |
529 | |
530 | <output k="foot" v="yes"/> |
531 | <output k="horse" v="yes"/> |
532 | <output k="wheelchair" v="yes"/> |
533 | <output k="bicycle" v="yes"/> |
534 | <output k="moped" v="yes"/> |
535 | <output k="motorcycle" v="yes"/> |
536 | <output k="motorcar" v="yes"/> |
537 | <output k="goods" v="yes"/> |
538 | <output k="hgv" v="yes"/> |
539 | <output k="psv" v="yes"/> |
540 | |
541 | <output k="paved" v="yes"/> |
542 | |
543 | <unset k="highway"/> |
544 | </if> |
545 | |
546 | <!-- Service road types (includes default access and default properties) --> |
547 | |
548 | <if k="highway" v="access"> |
549 | <set k="highway" v="service"/> |
550 | </if> |
551 | |
552 | <if k="highway" v="services"> |
553 | <set k="highway" v="service"/> |
554 | </if> |
555 | |
556 | <if k="highway" v="rest_area"> |
557 | <set k="highway" v="service"/> |
558 | </if> |
559 | |
560 | <if k="highway" v="layby"> |
561 | <set k="highway" v="service"/> |
562 | </if> |
563 | |
564 | <if k="highway" v="service"> |
565 | <output k="highway"/> |
566 | |
567 | <output k="foot" v="yes"/> |
568 | <output k="horse" v="yes"/> |
569 | <output k="wheelchair" v="yes"/> |
570 | <output k="bicycle" v="yes"/> |
571 | <output k="moped" v="yes"/> |
572 | <output k="motorcycle" v="yes"/> |
573 | <output k="motorcar" v="yes"/> |
574 | <output k="goods" v="yes"/> |
575 | <output k="hgv" v="yes"/> |
576 | <output k="psv" v="yes"/> |
577 | |
578 | <output k="paved" v="yes"/> |
579 | |
580 | <unset k="highway"/> |
581 | </if> |
582 | |
583 | <!-- Busway types (includes default access and default properties) --> |
584 | |
585 | <if k="highway" v="bus_guideway"> |
586 | <set k="highway" v="busway"/> |
587 | </if> |
588 | |
589 | <if k="highway" v="bus_stop"> |
590 | <set k="highway" v="busway"/> |
591 | </if> |
592 | |
593 | <if k="highway" v="busway"> |
594 | <output k="highway" v="service"/> |
595 | |
596 | <output k="psv" v="yes"/> |
597 | |
598 | <output k="paved" v="yes"/> |
599 | |
600 | <unset k="highway"/> |
601 | </if> |
602 | |
603 | <!-- Track types (includes default access and default properties) --> |
604 | |
605 | <if k="highway" v="byway"> |
606 | <set k="highway" v="track"/> |
607 | </if> |
608 | |
609 | <if k="highway" v="unsurfaced"> |
610 | <set k="highway" v="track"/> |
611 | </if> |
612 | |
613 | <if k="highway" v="unpaved"> |
614 | <set k="highway" v="track"/> |
615 | </if> |
616 | |
617 | <if k="highway" v="track"> |
618 | <output k="highway"/> |
619 | |
620 | <output k="foot" v="yes"/> |
621 | <output k="horse" v="yes"/> |
622 | <output k="bicycle" v="yes"/> |
623 | |
624 | <unset k="highway"/> |
625 | </if> |
626 | |
627 | <if k="tracktype" v="grade1"> |
628 | <output k="paved" v="yes"/> |
629 | </if> |
630 | |
631 | <!-- Cycleway types (includes default access and default properties) --> |
632 | |
633 | <if k="highway" v="cycleway"> |
634 | <output k="highway"/> |
635 | |
636 | <output k="foot" v="yes"/> |
637 | <output k="wheelchair" v="yes"/> |
638 | <output k="bicycle" v="yes"/> |
639 | |
640 | <output k="paved" v="yes"/> |
641 | |
642 | <unset k="highway"/> |
643 | </if> |
644 | |
645 | <!-- Path types (includes default access and default properties) --> |
646 | |
647 | <if k="highway" v="footway"> |
648 | <set k="highway" v="path"/> |
649 | </if> |
650 | |
651 | <if k="highway" v="platform"> |
652 | <set k="highway" v="path"/> |
653 | </if> |
654 | |
655 | <if k="highway" v="bridleway"> |
656 | <set k="highway" v="path"/> |
657 | |
658 | <output k="horse" v="yes"/> |
659 | <output k="bicycle" v="yes"/> |
660 | </if> |
661 | |
662 | <if k="highway" v="pedestrian"> |
663 | <set k="highway" v="path"/> |
664 | |
665 | <output k="paved" v="yes"/> |
666 | </if> |
667 | |
668 | <if k="highway" v="walkway"> |
669 | <set k="highway" v="path"/> |
670 | |
671 | <output k="paved" v="yes"/> |
672 | </if> |
673 | |
674 | <if k="highway" v="trail"> |
675 | <set k="highway" v="path"/> |
676 | |
677 | <output k="paved" v="no"/> |
678 | </if> |
679 | |
680 | <if k="highway" v="path"> |
681 | <output k="highway"/> |
682 | |
683 | <output k="foot" v="yes"/> |
684 | <output k="wheelchair" v="yes"/> |
685 | |
686 | <unset k="highway"/> |
687 | </if> |
688 | |
689 | <!-- Steps types (includes default access and default properties) --> |
690 | |
691 | <if k="highway" v="steps"> |
692 | <output k="highway"/> |
693 | |
694 | <output k="foot" v="yes"/> |
695 | |
696 | <unset k="highway"/> |
697 | </if> |
698 | |
699 | <!-- Ferries --> |
700 | |
701 | <if k="highway" v="ferry"> |
702 | <output k="highway"/> |
703 | |
704 | <!-- Heuristics for ferries - only a common vehicle type within its category --> |
705 | |
706 | <if k="foot" v="yes"> |
707 | <output k="wheelchair" v="yes"/> |
708 | </if> |
709 | |
710 | <if k="bicycle" v="yes"> |
711 | <output k="foot" v="yes"/> |
712 | <output k="wheelchair" v="yes"/> |
713 | </if> |
714 | |
715 | <if k="motorcycle" v="yes"> |
716 | <output k="moped" v="yes"/> |
717 | </if> |
718 | |
719 | <if k="motorcar" v="yes"> |
720 | <output k="moped" v="yes"/> |
721 | <output k="motorcycle" v="yes"/> |
722 | </if> |
723 | |
724 | <if k="goods" v="yes"> |
725 | <output k="moped" v="yes"/> |
726 | <output k="motorcycle" v="yes"/> |
727 | <output k="motorcar" v="yes"/> |
728 | </if> |
729 | |
730 | <if k="psv" v="yes"> |
731 | <output k="moped" v="yes"/> |
732 | <output k="motorcycle" v="yes"/> |
733 | <output k="motorcar" v="yes"/> |
734 | <output k="goods" v="yes"/> |
735 | </if> |
736 | |
737 | <if k="hgv" v="yes"> |
738 | <output k="moped" v="yes"/> |
739 | <output k="motorcycle" v="yes"/> |
740 | <output k="motorcar" v="yes"/> |
741 | <output k="goods" v="yes"/> |
742 | <output k="psv" v="yes"/> |
743 | </if> |
744 | |
745 | <!-- Heuristics for ferries - tag groups instead of individual vehicle types --> |
746 | |
747 | <if k="access" v="yes"> |
748 | <output k="foot" v="yes"/> |
749 | <output k="horse" v="yes"/> |
750 | <output k="wheelchair" v="yes"/> |
751 | |
752 | <set k="vehicle" v="yes"/> |
753 | </if> |
754 | |
755 | <if k="vehicle" v="yes"> |
756 | <output k="bicycle" v="yes"/> |
757 | |
758 | <set k="motor_vehicle" v="yes"/> |
759 | </if> |
760 | |
761 | <if k="motor_vehicle" v="yes"> |
762 | <output k="moped" v="yes"/> |
763 | <output k="motorcycle" v="yes"/> |
764 | <output k="motorcar" v="yes"/> |
765 | <output k="goods" v="yes"/> |
766 | <output k="hgv" v="yes"/> |
767 | <output k="psv" v="yes"/> |
768 | </if> |
769 | |
770 | <unset k="highway"/> |
771 | </if> |
772 | |
773 | <!-- Unrecognised highway type --> |
774 | |
775 | <if k="highway"> |
776 | <logerror k="highway" message="ignoring it"/> |
777 | </if> |
778 | |
779 | <!-- Normalisation of access tag keys --> |
780 | |
781 | <ifnot k="foot" > <if k="access:foot" > <set k="foot" /> </if> </ifnot> |
782 | <ifnot k="horse" > <if k="access:horse" > <set k="horse" /> </if> </ifnot> |
783 | <ifnot k="wheelchair"> <if k="access:wheelchair"> <set k="wheelchair"/> </if> </ifnot> |
784 | <ifnot k="bicycle" > <if k="access:bicycle" > <set k="bicycle" /> </if> </ifnot> |
785 | <ifnot k="moped" > <if k="access:moped" > <set k="moped" /> </if> </ifnot> |
786 | <ifnot k="motorcycle"> <if k="access:motorcycle"> <set k="motorcycle"/> </if> </ifnot> |
787 | <ifnot k="motorcar" > <if k="access:motorcar" > <set k="motorcar" /> </if> </ifnot> |
788 | <ifnot k="goods" > <if k="access:goods" > <set k="goods" /> </if> </ifnot> |
789 | <ifnot k="hgv" > <if k="access:hgv" > <set k="hgv" /> </if> </ifnot> |
790 | <ifnot k="psv" > <if k="access:psv" > <set k="psv" /> </if> </ifnot> |
791 | |
792 | <!-- Normalisation of access tag values --> |
793 | |
794 | <if v="designated" > <set v="yes"/> </if> |
795 | <if v="permissive" > <set v="yes"/> </if> |
796 | <if v="true" > <set v="yes"/> </if> |
797 | <if v="public" > <set v="yes"/> </if> |
798 | <if v="official" > <set v="yes"/> </if> |
799 | |
800 | <if v="destination" > <set v="no"/> </if> |
801 | <if v="permit" > <set v="no"/> </if> |
802 | <if v="customer" > <set v="no"/> </if> |
803 | <if v="customers" > <set v="no"/> </if> |
804 | <if v="delivery" > <set v="no"/> </if> |
805 | <if v="residents" > <set v="no"/> </if> |
806 | <if v="private" > <set v="no"/> </if> |
807 | |
808 | <if v="unknown" > <set v="no"/> </if> |
809 | <if v="construction"> <set v="no"/> </if> |
810 | <if v="unsuitable" > <set v="no"/> </if> |
811 | <if v="discouraged" > <set v="no"/> </if> |
812 | <if v="limited" > <set v="no"/> </if> |
813 | <if v="restricted" > <set v="no"/> </if> |
814 | <if v="agricultural"> <set v="no"/> </if> |
815 | <if v="forestry" > <set v="no"/> </if> |
816 | <if v="emergency" > <set v="no"/> </if> |
817 | |
818 | <!-- Generic access restrictions for all transport types (to subtract from highway specific defaults) --> |
819 | |
820 | <if k="access"> |
821 | |
822 | <ifnot k="access" v="yes"> |
823 | <output k="foot" v="no"/> |
824 | <output k="horse" v="no"/> |
825 | <output k="wheelchair" v="no"/> |
826 | <output k="bicycle" v="no"/> |
827 | <output k="moped" v="no"/> |
828 | <output k="motorcycle" v="no"/> |
829 | <output k="motorcar" v="no"/> |
830 | <output k="goods" v="no"/> |
831 | <output k="hgv" v="no"/> |
832 | <output k="psv" v="no"/> |
833 | |
834 | <if k="access" v="foot"> |
835 | <set k="foot" v="yes"/> |
836 | <logerror k="access" message="using 'access' = 'no' ; 'foot' = 'yes'"/> |
837 | <set k="access" v="no"/> |
838 | </if> |
839 | |
840 | <if k="access" v="wheelchair"> |
841 | <set k="wheelchair" v="yes"/> |
842 | <logerror k="access" message="using 'access' = 'no' ; 'wheelchair' = 'yes'"/> |
843 | <set k="access" v="no"/> |
844 | </if> |
845 | |
846 | <if k="access" v="motor_vehicle"> |
847 | <set k="motor_vehicle" v="yes"/> |
848 | <logerror k="access" message="using 'access' = 'no' ; 'motor_vehicle' = 'yes'"/> |
849 | <set k="access" v="no"/> |
850 | </if> |
851 | |
852 | <if k="access" v="hgv"> |
853 | <set k="hgv" v="yes"/> |
854 | <logerror k="access" message="using 'access' = 'no' ; 'hgv' = 'yes'"/> |
855 | <set k="access" v="no"/> |
856 | </if> |
857 | |
858 | <if k="access" v="bus"> |
859 | <set v="psv" /> |
860 | </if> |
861 | |
862 | <if k="access" v="psv"> |
863 | <set k="psv" v="yes"/> |
864 | <logerror k="access" message="using 'access' = 'no' ; 'psv' = 'yes'"/> |
865 | <set k="access" v="no"/> |
866 | </if> |
867 | |
868 | <ifnot k="access" v="no"> |
869 | <logerror k="access" message="using 'no'"/> |
870 | </ifnot> |
871 | </ifnot> |
872 | |
873 | </if> <!-- k="access" --> |
874 | |
875 | <!-- Other access permissions (to add to highway specific defaults with generic restrictions) --> |
876 | |
877 | <if k="designation"> |
878 | |
879 | <if k="designation" v="restricted_byway"> |
880 | <output k="foot" v="yes"/> |
881 | <output k="horse" v="yes"/> |
882 | <output k="wheelchair" v="yes"/> |
883 | <output k="bicycle" v="yes"/> |
884 | |
885 | <unset k="designation"/> |
886 | </if> |
887 | |
888 | <if k="designation" v="public_highway"> |
889 | <set v="byway_open_to_all_traffic"/> |
890 | </if> |
891 | |
892 | <if k="designation" v="public_byway"> |
893 | <set v="byway_open_to_all_traffic"/> |
894 | </if> |
895 | |
896 | <if k="designation" v="byway"> |
897 | <set v="byway_open_to_all_traffic"/> |
898 | </if> |
899 | |
900 | <if k="designation" v="byway_open_to_all_traffic"> |
901 | <output k="foot" v="yes"/> |
902 | <output k="horse" v="yes"/> |
903 | <output k="wheelchair" v="yes"/> |
904 | <output k="bicycle" v="yes"/> |
905 | <output k="moped" v="yes"/> |
906 | <output k="motorcycle" v="yes"/> |
907 | <output k="motorcar" v="yes"/> |
908 | |
909 | <unset k="designation"/> |
910 | </if> |
911 | |
912 | <if k="designation" v="permissive_bridleway"> |
913 | <set v="bridleway"/> |
914 | </if> |
915 | |
916 | <if k="designation" v="public_bridleway"> |
917 | <set v="bridleway"/> |
918 | </if> |
919 | |
920 | <if k="designation" v="bridleway"> |
921 | <output k="foot" v="yes"/> |
922 | <output k="horse" v="yes"/> |
923 | <output k="wheelchair" v="yes"/> |
924 | <output k="bicycle" v="yes"/> |
925 | |
926 | <unset k="designation"/> |
927 | </if> |
928 | |
929 | <if k="designation" v="public_cycleway"> |
930 | <output k="foot" v="yes"/> |
931 | <output k="wheelchair" v="yes"/> |
932 | <output k="bicycle" v="yes"/> |
933 | |
934 | <unset k="designation"/> |
935 | </if> |
936 | |
937 | <if k="designation" v="permissive_footpath"> |
938 | <set v="footpath"/> |
939 | </if> |
940 | |
941 | <if k="designation" v="public_footpath"> |
942 | <set v="footpath"/> |
943 | </if> |
944 | |
945 | <if k="designation" v="footpath"> |
946 | <output k="foot" v="yes"/> |
947 | <output k="wheelchair" v="yes"/> |
948 | |
949 | <unset k="designation"/> |
950 | </if> |
951 | |
952 | <if k="designation"> |
953 | <logerror k="designation" message="ignoring it"/> |
954 | </if> |
955 | |
956 | </if> <!-- k="designation" --> |
957 | |
958 | <!-- Motorroad derived access rules (to override the generic ones) --> |
959 | |
960 | <if k="motorroad" v="yes"> |
961 | <output k="foot" v="no"/> |
962 | <output k="horse" v="no"/> |
963 | <output k="wheelchair" v="no"/> |
964 | <output k="bicycle" v="no"/> |
965 | <output k="moped" v="no"/> |
966 | </if> |
967 | |
968 | <!-- Footway/sidewalk derived access rules (to override the generic ones) --> |
969 | |
970 | <if k="footway" v="use_sidepath"> |
971 | <output k="foot" v="no"/> |
972 | </if> |
973 | |
974 | <if k="footway"> |
975 | <if k="footway" v="sidewalk"> <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
976 | <if k="footway" v="both" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
977 | <if k="footway" v="left" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
978 | <if k="footway" v="right" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
979 | <if k="footway" v="yes" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
980 | |
981 | <if k="footway" v="crossing"> <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
982 | </if> |
983 | |
984 | <if k="sidewalk"> |
985 | <if k="sidewalk" v="both" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
986 | <if k="sidewalk" v="left" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
987 | <if k="sidewalk" v="right" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
988 | <if k="sidewalk" v="yes" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
989 | </if> |
990 | |
991 | <if k="sidewalk:both" v="yes" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
992 | <if k="sidewalk:left" v="yes" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
993 | <if k="sidewalk:right" v="yes" > <output k="foot" v="yes"/> <output k="wheelchair" v="yes"/> </if> |
994 | |
995 | <!-- Bicycle/cycleway derived access rules (to override the generic ones) --> |
996 | |
997 | <if k="bicycle" v="use_sidepath"> |
998 | <output k="bicycle" v="no"/> |
999 | </if> |
1000 | |
1001 | <if k="cycleway"> |
1002 | |
1003 | <if k="cycleway" v="lane" > <output k="bicycle" v="yes"/> </if> |
1004 | <if k="cycleway" v="track" > <output k="bicycle" v="yes"/> </if> |
1005 | <if k="cycleway" v="shared_lane"> <output k="bicycle" v="yes"/> </if> |
1006 | <if k="cycleway" v="opposite" > <output k="bicycle" v="yes"/> </if> |
1007 | <if k="cycleway" v="crossing" > <output k="bicycle" v="yes"/> </if> |
1008 | <if k="cycleway" v="yes" > <output k="bicycle" v="yes"/> </if> |
1009 | |
1010 | <if k="cycleway" v="opposite_lane"> |
1011 | <output k="bicycle" v="yes"/> |
1012 | <output k="cyclebothways" v="yes"/> |
1013 | </if> |
1014 | |
1015 | <if k="cycleway" v="opposite_track"> |
1016 | <output k="bicycle" v="yes"/> |
1017 | <output k="cyclebothways" v="yes"/> |
1018 | </if> |
1019 | |
1020 | <if k="cycleway" v="opposite"> |
1021 | <output k="bicycle" v="yes"/> |
1022 | <output k="cyclebothways" v="yes"/> |
1023 | </if> |
1024 | |
1025 | </if> <!-- k="cycleway" --> |
1026 | |
1027 | <if k="oneway:bicycle" v="no"> |
1028 | <output k="bicycle" v="yes"/> |
1029 | <output k="cyclebothways" v="yes"/> |
1030 | </if> |
1031 | |
1032 | <!-- Access restrictions for classes of transport types (to subtract from highway specific defaults and other access permissions) --> |
1033 | |
1034 | <if k="vehicle"> |
1035 | |
1036 | <ifnot k="vehicle" v="yes"> |
1037 | <output k="bicycle" v="no"/> |
1038 | <output k="moped" v="no"/> |
1039 | <output k="motorcycle" v="no"/> |
1040 | <output k="motorcar" v="no"/> |
1041 | <output k="goods" v="no"/> |
1042 | <output k="hgv" v="no"/> |
1043 | <output k="psv" v="no"/> |
1044 | |
1045 | <ifnot k="vehicle" v="no"> |
1046 | <logerror k="vehicle" message="using 'no'"/> |
1047 | </ifnot> |
1048 | </ifnot> |
1049 | |
1050 | </if> <!-- k="vehicle" --> |
1051 | |
1052 | <if k="motor_vehicle"> |
1053 | |
1054 | <ifnot k="motor_vehicle" v="yes"> |
1055 | <output k="moped" v="no"/> |
1056 | <output k="motorcycle" v="no"/> |
1057 | <output k="motorcar" v="no"/> |
1058 | <output k="goods" v="no"/> |
1059 | <output k="hgv" v="no"/> |
1060 | <output k="psv" v="no"/> |
1061 | |
1062 | <ifnot k="motor_vehicle" v="no"> |
1063 | <logerror k="motor_vehicle" message="using 'no'"/> |
1064 | </ifnot> |
1065 | </ifnot> |
1066 | |
1067 | </if> <!-- k="motor_vehicle" --> |
1068 | |
1069 | <!-- Specific access rules (to override the generic ones) --> |
1070 | |
1071 | <if k="foot" > <output/> </if> |
1072 | <if k="horse" > <output/> </if> |
1073 | <if k="wheelchair"> <output/> </if> |
1074 | <if k="bicycle" > <output/> </if> |
1075 | <if k="moped" > <output/> </if> |
1076 | <if k="motorcycle"> <output/> </if> |
1077 | <if k="motorcar" > <output/> </if> |
1078 | <if k="goods" > <output/> </if> |
1079 | <if k="hgv" > <output/> </if> |
1080 | <if k="psv" > <output/> </if> |
1081 | |
1082 | <!-- Normalisation of property tags --> |
1083 | |
1084 | <if k="surface"> |
1085 | |
1086 | <!-- Tags from http://wiki.openstreetmap.org/wiki/Key:surface on 2023-08-29 --> |
1087 | |
1088 | <if k="surface" v="paved"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1089 | <if k="surface" v="asphalt"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1090 | <if k="surface" v="chipseal"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1091 | <if k="surface" v="concrete"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1092 | <if k="surface" v="concrete:lanes"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1093 | <if k="surface" v="concrete:plates"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1094 | <if k="surface" v="paving_stones"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1095 | <if k="surface" v="sett"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1096 | <if k="surface" v="unhewn_cobblestone"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1097 | <if k="surface" v="cobblestone"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1098 | <if k="surface" v="brick"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1099 | <if k="surface" v="metal"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1100 | <if k="surface" v="wood"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1101 | <if k="surface" v="rubber"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1102 | |
1103 | <if k="surface" v="unpaved"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1104 | <if k="surface" v="compacted"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1105 | <if k="surface" v="fine_gravel"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1106 | <if k="surface" v="gravel"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1107 | <if k="surface" v="shells"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1108 | <if k="surface" v="rock"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1109 | <if k="surface" v="pebblestone"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1110 | <if k="surface" v="ground"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1111 | <if k="surface" v="dirt"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1112 | <if k="surface" v="earth"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1113 | <if k="surface" v="grass"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1114 | <if k="surface" v="grass_paver"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1115 | <if k="surface" v="metal_grid"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1116 | <if k="surface" v="mud"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1117 | <if k="surface" v="sand"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1118 | <if k="surface" v="woodchips"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1119 | <if k="surface" v="snow"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1120 | <if k="surface" v="ice"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1121 | <if k="surface" v="salt"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1122 | |
1123 | <!-- Other tags --> |
1124 | |
1125 | <if k="surface" v="bitmac"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1126 | <if k="surface" v="chipseal"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1127 | <if k="surface" v="tarmac"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1128 | <if k="surface" v="bricks"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1129 | <if k="surface" v="brick_weave"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1130 | <if k="surface" v="slabs"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1131 | <if k="surface" v="boardwalk"> <set k="paved" v="yes"/> <unset k="surface"/> </if> |
1132 | |
1133 | <if k="surface" v="soil"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1134 | <if k="surface" v="stones"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1135 | <if k="surface" v="stone"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1136 | <if k="surface" v="shingle"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1137 | <if k="surface" v="pebbles"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1138 | <if k="surface" v="hardcore"> <set k="paved" v="no"/> <unset k="surface"/> </if> |
1139 | |
1140 | <if k="surface"> |
1141 | <logerror k="surface" message="ignoring it"/> |
1142 | </if> |
1143 | |
1144 | </if> <!-- k="surface" --> |
1145 | |
1146 | <!-- Bridges --> |
1147 | |
1148 | <if k="bridge"> |
1149 | <ifnot k="bridge" v="no"> |
1150 | <set k="bridge" v="yes"/> |
1151 | </ifnot> |
1152 | </if> |
1153 | |
1154 | <!-- Tunnels --> |
1155 | |
1156 | <if k="tunnel"> |
1157 | <ifnot k="tunnel" v="no"> |
1158 | <set k="tunnel" v="yes"/> |
1159 | </ifnot> |
1160 | </if> |
1161 | |
1162 | <!-- Roundabouts --> |
1163 | |
1164 | <if k="junction" v="circular"> |
1165 | <output k="oneway" v="yes"/> |
1166 | <output k="roundabout" v="yes"/> |
1167 | </if> |
1168 | |
1169 | <if k="junction" v="roundabout"> |
1170 | <output k="oneway" v="yes"/> |
1171 | <output k="roundabout" v="yes"/> |
1172 | </if> |
1173 | |
1174 | <!-- Specific property rules (to override the default ones) --> |
1175 | |
1176 | <if k="paved"> <output/> </if> |
1177 | |
1178 | <if k="lanes"> <output/> </if> |
1179 | |
1180 | <if k="bridge"> <output/> </if> |
1181 | |
1182 | <if k="tunnel"> <output/> </if> |
1183 | |
1184 | <!-- Output the restriction tags --> |
1185 | |
1186 | <if k="oneway"> <output/> </if> |
1187 | |
1188 | <if k="maxspeed"> <output/> </if> |
1189 | |
1190 | <if k="maxweight"> <output/> </if> |
1191 | <if k="maxheight"> <output/> </if> |
1192 | <if k="maxwidth" > <output/> </if> |
1193 | <if k="maxlength"> <output/> </if> |
1194 | |
1195 | <!-- Output the name and reference tags --> |
1196 | |
1197 | <if k="name"> <output/> </if> |
1198 | <if k="ref" > <output/> </if> |
1199 | <ifnot k="ref" > <if k="prow_ref" > <output k="ref"/> </if> </ifnot> |
1200 | |
1201 | <!-- Output the area tag --> |
1202 | |
1203 | <if k="area"> <output/> </if> |
1204 | |
1205 | </if> <!-- k="highway" --> |
1206 | |
1207 | </way> |
1208 | |
1209 | <!-- - - - - - - - - - - Relation rules - - - - - - - - - - --> |
1210 | |
1211 | <relation> |
1212 | |
1213 | <if k="type"> |
1214 | <output/> |
1215 | </if> |
1216 | |
1217 | <!-- Copy route relations --> |
1218 | |
1219 | <if k="route"> |
1220 | |
1221 | <if k="route" v="foot"> |
1222 | <output k="footroute" v="yes"/> |
1223 | </if> |
1224 | |
1225 | <if k="route" v="walking"> |
1226 | <output k="footroute" v="yes"/> |
1227 | </if> |
1228 | |
1229 | <if k="route" v="hiking"> |
1230 | <output k="footroute" v="yes"/> |
1231 | </if> |
1232 | |
1233 | <if k="route" v="foot;bicycle"> |
1234 | <output k="footroute" v="yes"/> |
1235 | <output k="bicycleroute" v="yes"/> |
1236 | </if> |
1237 | |
1238 | <if k="route" v="bicycle;foot"> |
1239 | <output k="footroute" v="yes"/> |
1240 | <output k="bicycleroute" v="yes"/> |
1241 | </if> |
1242 | |
1243 | <if k="route" v="bicycle"> |
1244 | <output k="bicycleroute" v="yes"/> |
1245 | </if> |
1246 | |
1247 | </if> <!-- k="route" --> |
1248 | |
1249 | <!-- Pass through turn relations --> |
1250 | |
1251 | <if k="restriction"> |
1252 | <output/> |
1253 | </if> |
1254 | |
1255 | <if k="except"> |
1256 | |
1257 | <if k="except" v="bus"> <set v="psv"/> </if> |
1258 | |
1259 | <if k="except"> |
1260 | <output/> |
1261 | </if> |
1262 | |
1263 | </if> |
1264 | |
1265 | </relation> |
1266 | |
1267 | </routino-tagging> |
Properties
Name | Value |
---|---|
cvs:description | Default version of the Routino tag transformation rules. |