Imported Upstream version 1.5.1
[routino] / xml / routino-tagging.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <!-- ============================================================
4      $Header: /home/amb/routino/xml/RCS/routino-tagging.xml,v 1.5 2010/09/17 17:44:25 amb Exp $
5
6      An XML format file containing Routino tagging rules
7
8      Part of the Routino routing software.
9      ============================================================
10      This file Copyright 2010 Andrew M. Bishop
11
12      This program is free software: you can redistribute it and/or modify
13      it under the terms of the GNU Affero General Public License as published by
14      the Free Software Foundation, either version 3 of the License, or
15      (at your option) any later version.
16      ============================================================ -->
17
18 <routino-tagging xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19                  xsi:noNamespaceSchemaLocation="http://www.routino.org/xml/routino-tagging.xsd">
20
21   <!-- -------------------- Node rules -------------------- -->
22
23   <node>
24
25     <!-- Note: The default is that all transport types are allowed past a barrier;
26                access must be specified to disallow each transport type. -->
27
28     <!-- Barriers -->
29
30     <if k="barrier" v="bollard">
31       <output k="motorcar"   v="no"/>
32       <output k="goods"      v="no"/>
33       <output k="hgv"        v="no"/>
34       <output k="psv"        v="no"/>
35     </if>
36
37     <if k="barrier" v="kissing_gate">
38       <output k="horse"      v="no"/>
39       <output k="wheelchair" v="no"/>
40       <output k="bicycle"    v="no"/>
41       <output k="moped"      v="no"/>
42       <output k="motorbike"  v="no"/>
43       <output k="motorcar"   v="no"/>
44       <output k="goods"      v="no"/>
45       <output k="hgv"        v="no"/>
46       <output k="psv"        v="no"/>
47     </if>
48
49     <if k="barrier" v="stile">
50       <output k="horse"      v="no"/>
51       <output k="wheelchair" v="no"/>
52       <output k="bicycle"    v="no"/>
53       <output k="moped"      v="no"/>
54       <output k="motorbike"  v="no"/>
55       <output k="motorcar"   v="no"/>
56       <output k="goods"      v="no"/>
57       <output k="hgv"        v="no"/>
58       <output k="psv"        v="no"/>
59     </if>
60
61     <if k="barrier" v="turnstile">
62       <output k="horse"      v="no"/>
63       <output k="wheelchair" v="no"/>
64       <output k="bicycle"    v="no"/>
65       <output k="moped"      v="no"/>
66       <output k="motorbike"  v="no"/>
67       <output k="motorcar"   v="no"/>
68       <output k="goods"      v="no"/>
69       <output k="hgv"        v="no"/>
70       <output k="psv"        v="no"/>
71     </if>
72
73     <!-- Normalisation of access tags -->
74
75     <if v="designated" ><set v="yes"/></if>
76     <if v="permissive" ><set v="yes"/></if>
77     <if v="destination"><set v="yes"/></if>
78     <if v="true"       ><set v="yes"/></if>
79
80     <if v="private"    ><set v="no"/></if>
81
82     <!-- Generic access permissions for all transport types (to override defaults) -->
83
84     <if k="access">
85       <set k="noaccess" v="yes"/>
86     </if>
87
88     <if k="access" v="yes">
89       <set k="noaccess" v="no"/>
90     </if>
91
92     <if k="noaccess" v="yes">
93       <output k="foot"       v="no"/>
94       <output k="horse"      v="no"/>
95       <output k="wheelchair" v="no"/>
96       <output k="bicycle"    v="no"/>
97       <output k="moped"      v="no"/>
98       <output k="motorbike"  v="no"/>
99       <output k="motorcar"   v="no"/>
100       <output k="goods"      v="no"/>
101       <output k="hgv"        v="no"/>
102       <output k="psv"        v="no"/>
103     </if>
104
105     <!-- Generic access permissions for classes of transport types -->
106
107     <if k="motor_vehicle">
108       <output k="moped"/>
109       <output k="motorbike"/>
110       <output k="motorcar"/>
111       <output k="goods"/>
112       <output k="hgv"/>
113       <output k="psv"/>
114     </if>
115
116     <if k="vehicle">
117       <output k="bicycle"/>
118       <output k="moped"/>
119       <output k="motorbike"/>
120       <output k="motorcar"/>
121       <output k="goods"/>
122       <output k="hgv"/>
123       <output k="psv"/>
124     </if>
125
126     <!-- Specific access rules (to override the generic ones) -->
127
128     <if k="foot"      ><output/></if>
129     <if k="horse"     ><output/></if>
130     <if k="wheelchair"><output/></if>
131     <if k="bicycle"   ><output/></if>
132     <if k="moped"     ><output/></if>
133     <if k="motorbike" ><output/></if>
134     <if k="motorcar"  ><output/></if>
135     <if k="goods"     ><output/></if>
136     <if k="hgv"       ><output/></if>
137     <if k="psv"       ><output/></if>
138
139   </node>
140
141   <!-- -------------------- Way rules -------------------- -->
142
143   <way>
144
145     <!-- Note: The default is that no transport type is allowed on any highway;
146                access must be specified to allow each transport type. -->
147
148     <!-- Highway types (includes default access and default properties) -->
149
150     <if k="highway" v="motorway_link">
151       <set v="motorway"/>
152     </if>
153
154     <if k="highway" v="motorway">
155       <output k="highway"/>
156
157       <output k="motorbike"  v="yes"/>
158       <output k="motorcar"   v="yes"/>
159       <output k="goods"      v="yes"/>
160       <output k="hgv"        v="yes"/>
161       <output k="psv"        v="yes"/>
162
163       <output k="paved"      v="yes"/>
164       <output k="multilane"  v="yes"/>
165       <output k="oneway"     v="yes"/>
166     </if>
167
168     <if k="highway" v="trunk_link">
169       <set v="trunk"/>
170     </if>
171
172     <if k="highway" v="trunk">
173       <output k="highway"/>
174
175       <output k="bicycle"    v="yes"/>
176       <output k="moped"      v="yes"/>
177       <output k="motorbike"  v="yes"/>
178       <output k="motorcar"   v="yes"/>
179       <output k="goods"      v="yes"/>
180       <output k="hgv"        v="yes"/>
181       <output k="psv"        v="yes"/>
182
183       <output k="paved"      v="yes"/>
184     </if>
185
186     <if k="highway" v="primary_link">
187       <set v="primary"/>
188     </if>
189
190     <if k="highway" v="primary">
191       <output k="highway"/>
192
193       <output k="foot"       v="yes"/>
194       <output k="horse"      v="yes"/>
195       <output k="wheelchair" v="no"/>
196       <output k="bicycle"    v="yes"/>
197       <output k="moped"      v="yes"/>
198       <output k="motorbike"  v="yes"/>
199       <output k="motorcar"   v="yes"/>
200       <output k="goods"      v="yes"/>
201       <output k="hgv"        v="yes"/>
202       <output k="psv"        v="yes"/>
203
204       <output k="paved"      v="yes"/>
205     </if>
206
207     <if k="highway" v="secondary_link">
208       <set v="secondary"/>
209     </if>
210
211     <if k="highway" v="secondary">
212       <output k="highway"/>
213
214       <output k="foot"       v="yes"/>
215       <output k="horse"      v="yes"/>
216       <output k="wheelchair" v="yes"/>
217       <output k="bicycle"    v="yes"/>
218       <output k="moped"      v="yes"/>
219       <output k="motorbike"  v="yes"/>
220       <output k="motorcar"   v="yes"/>
221       <output k="goods"      v="yes"/>
222       <output k="hgv"        v="yes"/>
223       <output k="psv"        v="yes"/>
224
225       <output k="paved"      v="yes"/>
226     </if>
227
228     <if k="highway" v="tertiary">
229       <output k="highway"/>
230
231       <output k="foot"       v="yes"/>
232       <output k="horse"      v="yes"/>
233       <output k="wheelchair" v="yes"/>
234       <output k="bicycle"    v="yes"/>
235       <output k="moped"      v="yes"/>
236       <output k="motorbike"  v="yes"/>
237       <output k="motorcar"   v="yes"/>
238       <output k="goods"      v="yes"/>
239       <output k="hgv"        v="yes"/>
240       <output k="psv"        v="yes"/>
241
242       <output k="paved"      v="yes"/>
243     </if>
244
245     <if k="highway" v="minor">
246       <set k="highway" v="unclassified"/>
247     </if>
248
249     <if k="highway" v="road">
250       <set k="highway" v="unclassified"/>
251     </if>
252
253     <if k="highway" v="unclassified">
254       <output k="highway"/>
255
256       <output k="foot"       v="yes"/>
257       <output k="horse"      v="yes"/>
258       <output k="wheelchair" v="yes"/>
259       <output k="bicycle"    v="yes"/>
260       <output k="moped"      v="yes"/>
261       <output k="motorbike"  v="yes"/>
262       <output k="motorcar"   v="yes"/>
263       <output k="goods"      v="yes"/>
264       <output k="hgv"        v="yes"/>
265       <output k="psv"        v="yes"/>
266
267       <output k="paved"      v="yes"/>
268     </if>
269
270     <if k="highway" v="living_street">
271       <set k="highway" v="residential"/>
272     </if>
273
274     <if k="highway" v="residential">
275       <output k="highway"/>
276
277       <output k="foot"       v="yes"/>
278       <output k="horse"      v="yes"/>
279       <output k="wheelchair" v="yes"/>
280       <output k="bicycle"    v="yes"/>
281       <output k="moped"      v="yes"/>
282       <output k="motorbike"  v="yes"/>
283       <output k="motorcar"   v="yes"/>
284       <output k="goods"      v="yes"/>
285       <output k="hgv"        v="yes"/>
286       <output k="psv"        v="yes"/>
287
288       <output k="paved"      v="yes"/>
289     </if>
290
291     <if k="highway" v="services">
292       <set k="highway" v="service"/>
293     </if>
294
295     <if k="highway" v="service">
296       <output k="highway"/>
297
298       <output k="foot"       v="yes"/>
299       <output k="horse"      v="yes"/>
300       <output k="wheelchair" v="yes"/>
301       <output k="bicycle"    v="yes"/>
302       <output k="moped"      v="yes"/>
303       <output k="motorbike"  v="yes"/>
304       <output k="motorcar"   v="yes"/>
305       <output k="goods"      v="yes"/>
306       <output k="hgv"        v="yes"/>
307       <output k="psv"        v="yes"/>
308
309       <output k="paved"      v="yes"/>
310     </if>
311
312     <if k="highway" v="byway">
313       <set k="highway" v="track"/>
314     </if>
315
316     <if k="highway" v="unsurfaced">
317       <set k="highway" v="track"/>
318     </if>
319
320     <if k="highway" v="unpaved">
321       <set k="highway" v="track"/>
322     </if>
323
324     <if k="highway" v="track">
325       <output k="highway"/>
326
327       <output k="foot"       v="yes"/>
328       <output k="horse"      v="yes"/>
329       <output k="bicycle"    v="yes"/>
330     </if>
331
332     <if k="tracktype" v="grade1">
333       <output k="paved"      v="yes"/>
334     </if>
335
336     <if k="highway" v="cycleway">
337       <output k="highway"/>
338
339       <output k="foot"       v="yes"/>
340       <output k="wheelchair" v="yes"/>
341       <output k="bicycle"    v="yes"/>
342
343       <output k="paved"      v="yes"/>
344     </if>
345
346     <if k="highway" v="footway">
347       <set k="highway" v="path"/>
348     </if>
349
350     <if k="highway" v="bridleway">
351       <set k="highway" v="path"/>
352
353       <output k="horse"      v="yes"/>
354       <output k="bicycle"    v="yes"/>
355     </if>
356
357     <if k="highway" v="pedestrian">
358       <set k="highway" v="path"/>
359
360       <output k="paved"      v="yes"/>
361     </if>
362
363     <if k="highway" v="walkway">
364       <set k="highway"  v="path"/>
365
366       <output k="paved"      v="yes"/>
367     </if>
368
369     <if k="highway" v="path">
370       <output k="highway"/>
371
372       <output k="foot"       v="yes"/>
373       <output k="wheelchair" v="yes"/>
374     </if>
375
376     <if k="highway" v="steps">
377       <output k="highway"/>
378
379       <output k="foot"       v="yes"/>
380     </if>
381
382     <if k="junction" v="roundabout">
383       <output k="junction" v="roundabout"/>
384       <output k="oneway"   v="yes"/>
385     </if>
386
387     <if k="route" v="ferry">
388       <set k="highway" v="ferry"/>
389     </if>
390
391     <!-- Normalisation of access tags -->
392
393     <if v="designated" ><set v="yes"/></if>
394     <if v="permissive" ><set v="yes"/></if>
395     <if v="destination"><set v="yes"/></if>
396     <if v="true"       ><set v="yes"/></if>
397
398     <if v="private"    ><set v="no"/></if>
399
400     <!-- Generic access permissions for all transport types (to override defaults) -->
401
402     <if k="access">
403       <set k="noaccess" v="yes"/>
404     </if>
405
406     <if k="access" v="yes">
407       <set k="noaccess" v="no"/>
408     </if>
409
410     <if k="noaccess" v="yes">
411       <output k="foot"       v="no"/>
412       <output k="horse"      v="no"/>
413       <output k="wheelchair" v="no"/>
414       <output k="bicycle"    v="no"/>
415       <output k="moped"      v="no"/>
416       <output k="motorbike"  v="no"/>
417       <output k="motorcar"   v="no"/>
418       <output k="goods"      v="no"/>
419       <output k="hgv"        v="no"/>
420       <output k="psv"        v="no"/>
421     </if>
422
423     <!-- Generic access permissions for classes of transport types -->
424
425     <if k="motor_vehicle">
426       <output k="moped"/>
427       <output k="motorbike"/>
428       <output k="motorcar"/>
429       <output k="goods"/>
430       <output k="hgv"/>
431       <output k="psv"/>
432     </if>
433
434     <if k="vehicle">
435       <output k="bicycle"/>
436       <output k="moped"/>
437       <output k="motorbike"/>
438       <output k="motorcar"/>
439       <output k="goods"/>
440       <output k="hgv"/>
441       <output k="psv"/>
442     </if>
443
444     <!-- Other access permissions (UK) -->
445
446     <if k="designation" v="restricted_byway">
447       <output k="foot"       v="yes"/>
448       <output k="horse"      v="yes"/>
449       <output k="wheelchair" v="yes"/>
450       <output k="bicycle"    v="yes"/>
451     </if>
452
453     <if k="designation" v="byway">
454       <output k="foot"       v="yes"/>
455       <output k="horse"      v="yes"/>
456       <output k="wheelchair" v="yes"/>
457       <output k="bicycle"    v="yes"/>
458       <output k="moped"      v="yes"/>
459       <output k="motorbike"  v="yes"/>
460       <output k="motorcar"   v="yes"/>
461     </if>
462
463     <if k="designation" v="public_bridleway">
464       <set v="bridleway"/>
465     </if>
466
467     <if k="designation" v="bridleway">
468       <output k="foot"       v="yes"/>
469       <output k="horse"      v="yes"/>
470       <output k="wheelchair" v="yes"/>
471       <output k="bicycle"    v="yes"/>
472     </if>
473
474     <if k="designation" v="public_footpath">
475       <set v="footpath"/>
476     </if>
477
478     <if k="designation" v="footpath">
479       <output k="foot"       v="yes"/>
480       <output k="wheelchair" v="yes"/>
481     </if>
482
483     <!-- Specific access rules (to override the generic ones) -->
484
485     <if k="foot"      ><output/></if>
486     <if k="horse"     ><output/></if>
487     <if k="wheelchair"><output/></if>
488     <if k="bicycle"   ><output/></if>
489     <if k="moped"     ><output/></if>
490     <if k="motorbike" ><output/></if>
491     <if k="motorcar"  ><output/></if>
492     <if k="goods"     ><output/></if>
493     <if k="hgv"       ><output/></if>
494     <if k="psv"       ><output/></if>
495
496     <!-- Normalisation of property tags -->
497
498     <if k="surface">
499       <set k="paved"/>
500     </if>
501
502     <if k="surface" v="paved">
503       <set k="paved" v="yes"/>
504     </if>
505
506     <if k="surface" v="concrete">
507       <set k="paved" v="yes"/>
508     </if>
509
510     <if k="surface" v="ashphalt">
511       <set k="paved" v="yes"/>
512     </if>
513
514
515     <if k="lanes">
516       <set k="multilane" v="yes"/>
517     </if>
518
519     <if k="lanes" v="1">
520       <set k="multilane" v="no"/>
521     </if>
522
523     <!-- Specific property rules (to override the default ones) -->
524
525     <if k="paved"    ><output/></if>
526     <if k="multilane"><output/></if>
527
528     <if k="bridge"   ><output/></if>
529     <if k="tunnel"   ><output/></if>
530
531     <!-- The "footroute" and "bicycleroute" properties can be set here,
532          but normally they are set by the relation rules. -->
533
534     <!-- Output the restriction tags -->
535
536     <if k="oneway"><output/></if>
537
538     <if k="maxspeed"><output/></if>
539
540     <if k="maxweight"><output/></if>
541     <if k="maxheight"><output/></if>
542     <if k="maxwidth" ><output/></if>
543     <if k="maxlength"><output/></if>
544
545     <!-- Output the name and reference tags -->
546
547     <if k="name"><output/></if>
548     <if k="ref" ><output/></if>
549
550   </way>
551
552   <!-- Relation rules are not currently used -->
553
554   <relation>
555
556     <!-- Copy route relations -->
557
558     <if k="route" v="foot">
559       <output k="footroute" v="yes"/>
560     </if>
561
562     <if k="route" v="walking">
563       <output k="footroute" v="yes"/>
564     </if>
565
566     <if k="route" v="hiking">
567       <output k="footroute" v="yes"/>
568     </if>
569
570     <if k="route" v="foot;bicycle">
571       <output k="footroute"    v="yes"/>
572       <output k="bicycleroute" v="yes"/>
573     </if>
574
575     <if k="route" v="bicycle;foot">
576       <output k="footroute"    v="yes"/>
577       <output k="bicycleroute" v="yes"/>
578     </if>
579
580     <if k="route" v="bicycle">
581       <output k="bicycleroute" v="yes"/>
582     </if>
583
584   </relation>
585
586 </routino-tagging>