1 <?xml version="1.0" encoding="UTF-8" ?>
3 <!-- ============================================================
4 $Header: /home/amb/routino/xml/RCS/routino-tagging.xml,v 1.5 2010/09/17 17:44:25 amb Exp $
6 An XML format file containing Routino tagging rules
8 Part of the Routino routing software.
9 ============================================================
10 This file Copyright 2010 Andrew M. Bishop
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 ============================================================ -->
18 <routino-tagging xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19 xsi:noNamespaceSchemaLocation="http://www.routino.org/xml/routino-tagging.xsd">
21 <!-- -------------------- Node rules -------------------- -->
25 <!-- Note: The default is that all transport types are allowed past a barrier;
26 access must be specified to disallow each transport type. -->
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"/>
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"/>
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"/>
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"/>
73 <!-- Normalisation of access tags -->
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>
80 <if v="private" ><set v="no"/></if>
82 <!-- Generic access permissions for all transport types (to override defaults) -->
85 <set k="noaccess" v="yes"/>
88 <if k="access" v="yes">
89 <set k="noaccess" v="no"/>
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"/>
105 <!-- Generic access permissions for classes of transport types -->
107 <if k="motor_vehicle">
109 <output k="motorbike"/>
110 <output k="motorcar"/>
117 <output k="bicycle"/>
119 <output k="motorbike"/>
120 <output k="motorcar"/>
126 <!-- Specific access rules (to override the generic ones) -->
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>
141 <!-- -------------------- Way rules -------------------- -->
145 <!-- Note: The default is that no transport type is allowed on any highway;
146 access must be specified to allow each transport type. -->
148 <!-- Highway types (includes default access and default properties) -->
150 <if k="highway" v="motorway_link">
154 <if k="highway" v="motorway">
155 <output k="highway"/>
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"/>
163 <output k="paved" v="yes"/>
164 <output k="multilane" v="yes"/>
165 <output k="oneway" v="yes"/>
168 <if k="highway" v="trunk_link">
172 <if k="highway" v="trunk">
173 <output k="highway"/>
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"/>
183 <output k="paved" v="yes"/>
186 <if k="highway" v="primary_link">
190 <if k="highway" v="primary">
191 <output k="highway"/>
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"/>
204 <output k="paved" v="yes"/>
207 <if k="highway" v="secondary_link">
211 <if k="highway" v="secondary">
212 <output k="highway"/>
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"/>
225 <output k="paved" v="yes"/>
228 <if k="highway" v="tertiary">
229 <output k="highway"/>
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"/>
242 <output k="paved" v="yes"/>
245 <if k="highway" v="minor">
246 <set k="highway" v="unclassified"/>
249 <if k="highway" v="road">
250 <set k="highway" v="unclassified"/>
253 <if k="highway" v="unclassified">
254 <output k="highway"/>
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"/>
267 <output k="paved" v="yes"/>
270 <if k="highway" v="living_street">
271 <set k="highway" v="residential"/>
274 <if k="highway" v="residential">
275 <output k="highway"/>
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"/>
288 <output k="paved" v="yes"/>
291 <if k="highway" v="services">
292 <set k="highway" v="service"/>
295 <if k="highway" v="service">
296 <output k="highway"/>
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"/>
309 <output k="paved" v="yes"/>
312 <if k="highway" v="byway">
313 <set k="highway" v="track"/>
316 <if k="highway" v="unsurfaced">
317 <set k="highway" v="track"/>
320 <if k="highway" v="unpaved">
321 <set k="highway" v="track"/>
324 <if k="highway" v="track">
325 <output k="highway"/>
327 <output k="foot" v="yes"/>
328 <output k="horse" v="yes"/>
329 <output k="bicycle" v="yes"/>
332 <if k="tracktype" v="grade1">
333 <output k="paved" v="yes"/>
336 <if k="highway" v="cycleway">
337 <output k="highway"/>
339 <output k="foot" v="yes"/>
340 <output k="wheelchair" v="yes"/>
341 <output k="bicycle" v="yes"/>
343 <output k="paved" v="yes"/>
346 <if k="highway" v="footway">
347 <set k="highway" v="path"/>
350 <if k="highway" v="bridleway">
351 <set k="highway" v="path"/>
353 <output k="horse" v="yes"/>
354 <output k="bicycle" v="yes"/>
357 <if k="highway" v="pedestrian">
358 <set k="highway" v="path"/>
360 <output k="paved" v="yes"/>
363 <if k="highway" v="walkway">
364 <set k="highway" v="path"/>
366 <output k="paved" v="yes"/>
369 <if k="highway" v="path">
370 <output k="highway"/>
372 <output k="foot" v="yes"/>
373 <output k="wheelchair" v="yes"/>
376 <if k="highway" v="steps">
377 <output k="highway"/>
379 <output k="foot" v="yes"/>
382 <if k="junction" v="roundabout">
383 <output k="junction" v="roundabout"/>
384 <output k="oneway" v="yes"/>
387 <if k="route" v="ferry">
388 <set k="highway" v="ferry"/>
391 <!-- Normalisation of access tags -->
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>
398 <if v="private" ><set v="no"/></if>
400 <!-- Generic access permissions for all transport types (to override defaults) -->
403 <set k="noaccess" v="yes"/>
406 <if k="access" v="yes">
407 <set k="noaccess" v="no"/>
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"/>
423 <!-- Generic access permissions for classes of transport types -->
425 <if k="motor_vehicle">
427 <output k="motorbike"/>
428 <output k="motorcar"/>
435 <output k="bicycle"/>
437 <output k="motorbike"/>
438 <output k="motorcar"/>
444 <!-- Other access permissions (UK) -->
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"/>
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"/>
463 <if k="designation" v="public_bridleway">
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"/>
474 <if k="designation" v="public_footpath">
478 <if k="designation" v="footpath">
479 <output k="foot" v="yes"/>
480 <output k="wheelchair" v="yes"/>
483 <!-- Specific access rules (to override the generic ones) -->
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>
496 <!-- Normalisation of property tags -->
502 <if k="surface" v="paved">
503 <set k="paved" v="yes"/>
506 <if k="surface" v="concrete">
507 <set k="paved" v="yes"/>
510 <if k="surface" v="ashphalt">
511 <set k="paved" v="yes"/>
516 <set k="multilane" v="yes"/>
520 <set k="multilane" v="no"/>
523 <!-- Specific property rules (to override the default ones) -->
525 <if k="paved" ><output/></if>
526 <if k="multilane"><output/></if>
528 <if k="bridge" ><output/></if>
529 <if k="tunnel" ><output/></if>
531 <!-- The "footroute" and "bicycleroute" properties can be set here,
532 but normally they are set by the relation rules. -->
534 <!-- Output the restriction tags -->
536 <if k="oneway"><output/></if>
538 <if k="maxspeed"><output/></if>
540 <if k="maxweight"><output/></if>
541 <if k="maxheight"><output/></if>
542 <if k="maxwidth" ><output/></if>
543 <if k="maxlength"><output/></if>
545 <!-- Output the name and reference tags -->
547 <if k="name"><output/></if>
548 <if k="ref" ><output/></if>
552 <!-- Relation rules are not currently used -->
556 <!-- Copy route relations -->
558 <if k="route" v="foot">
559 <output k="footroute" v="yes"/>
562 <if k="route" v="walking">
563 <output k="footroute" v="yes"/>
566 <if k="route" v="hiking">
567 <output k="footroute" v="yes"/>
570 <if k="route" v="foot;bicycle">
571 <output k="footroute" v="yes"/>
572 <output k="bicycleroute" v="yes"/>
575 <if k="route" v="bicycle;foot">
576 <output k="footroute" v="yes"/>
577 <output k="bicycleroute" v="yes"/>
580 <if k="route" v="bicycle">
581 <output k="bicycleroute" v="yes"/>