0bec4dc82ea703ca823f96f671d7b917890bf0c7
[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.2 2010/06/26 19:26:47 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 are not currently used -->
22
23   <node>
24   </node>
25
26   <!-- Way rules -->
27
28   <way>
29
30     <!-- Highway types (includes default access and default properties) -->
31
32     <if k="highway" v="motorway_link">
33       <set v="motorway"/>
34     </if>
35
36     <if k="highway" v="motorway">
37       <output k="highway"/>
38
39       <output k="motorbike"  v="yes"/>
40       <output k="motorcar"   v="yes"/>
41       <output k="goods"      v="yes"/>
42       <output k="hgv"        v="yes"/>
43       <output k="psv"        v="yes"/>
44
45       <output k="paved"      v="yes"/>
46       <output k="multilane"  v="yes"/>
47       <output k="oneway"     v="yes"/>
48     </if>
49
50     <if k="highway" v="trunk_link">
51       <set v="trunk"/>
52     </if>
53
54     <if k="highway" v="trunk">
55       <output k="highway"/>
56
57       <output k="bicycle"    v="yes"/>
58       <output k="moped"      v="yes"/>
59       <output k="motorbike"  v="yes"/>
60       <output k="motorcar"   v="yes"/>
61       <output k="goods"      v="yes"/>
62       <output k="hgv"        v="yes"/>
63       <output k="psv"        v="yes"/>
64
65       <output k="paved"      v="yes"/>
66     </if>
67
68     <if k="highway" v="primary_link">
69       <set v="primary"/>
70     </if>
71
72     <if k="highway" v="primary">
73       <output k="highway"/>
74
75       <output k="foot"       v="yes"/>
76       <output k="horse"      v="yes"/>
77       <output k="wheelchair" v="no"/>
78       <output k="bicycle"    v="yes"/>
79       <output k="moped"      v="yes"/>
80       <output k="motorbike"  v="yes"/>
81       <output k="motorcar"   v="yes"/>
82       <output k="goods"      v="yes"/>
83       <output k="hgv"        v="yes"/>
84       <output k="psv"        v="yes"/>
85
86       <output k="paved"      v="yes"/>
87     </if>
88
89     <if k="highway" v="secondary_link">
90       <set v="secondary"/>
91     </if>
92
93     <if k="highway" v="secondary">
94       <output k="highway"/>
95
96       <output k="foot"       v="yes"/>
97       <output k="horse"      v="yes"/>
98       <output k="wheelchair" v="yes"/>
99       <output k="bicycle"    v="yes"/>
100       <output k="moped"      v="yes"/>
101       <output k="motorbike"  v="yes"/>
102       <output k="motorcar"   v="yes"/>
103       <output k="goods"      v="yes"/>
104       <output k="hgv"        v="yes"/>
105       <output k="psv"        v="yes"/>
106
107       <output k="paved"      v="yes"/>
108     </if>
109
110     <if k="highway" v="tertiary">
111       <output k="highway"/>
112
113       <output k="foot"       v="yes"/>
114       <output k="horse"      v="yes"/>
115       <output k="wheelchair" v="yes"/>
116       <output k="bicycle"    v="yes"/>
117       <output k="moped"      v="yes"/>
118       <output k="motorbike"  v="yes"/>
119       <output k="motorcar"   v="yes"/>
120       <output k="goods"      v="yes"/>
121       <output k="hgv"        v="yes"/>
122       <output k="psv"        v="yes"/>
123
124       <output k="paved"      v="yes"/>
125     </if>
126
127     <if k="highway" v="minor">
128       <set k="highway" v="unclassified"/>
129     </if>
130
131     <if k="highway" v="road">
132       <set k="highway" v="unclassified"/>
133     </if>
134
135     <if k="highway" v="unclassified">
136       <output k="highway"/>
137
138       <output k="foot"       v="yes"/>
139       <output k="horse"      v="yes"/>
140       <output k="wheelchair" v="yes"/>
141       <output k="bicycle"    v="yes"/>
142       <output k="moped"      v="yes"/>
143       <output k="motorbike"  v="yes"/>
144       <output k="motorcar"   v="yes"/>
145       <output k="goods"      v="yes"/>
146       <output k="hgv"        v="yes"/>
147       <output k="psv"        v="yes"/>
148
149       <output k="paved"      v="yes"/>
150     </if>
151
152     <if k="highway" v="living_street">
153       <set k="highway" v="residential"/>
154     </if>
155
156     <if k="highway" v="residential">
157       <output k="highway"/>
158
159       <output k="foot"       v="yes"/>
160       <output k="horse"      v="yes"/>
161       <output k="wheelchair" v="yes"/>
162       <output k="bicycle"    v="yes"/>
163       <output k="moped"      v="yes"/>
164       <output k="motorbike"  v="yes"/>
165       <output k="motorcar"   v="yes"/>
166       <output k="goods"      v="yes"/>
167       <output k="hgv"        v="yes"/>
168       <output k="psv"        v="yes"/>
169
170       <output k="paved"      v="yes"/>
171     </if>
172
173     <if k="highway" v="services">
174       <set k="highway" v="service"/>
175     </if>
176
177     <if k="highway" v="service">
178       <output k="highway"/>
179
180       <output k="foot"       v="yes"/>
181       <output k="horse"      v="yes"/>
182       <output k="wheelchair" v="yes"/>
183       <output k="bicycle"    v="yes"/>
184       <output k="moped"      v="yes"/>
185       <output k="motorbike"  v="yes"/>
186       <output k="motorcar"   v="yes"/>
187       <output k="goods"      v="yes"/>
188       <output k="hgv"        v="yes"/>
189       <output k="psv"        v="yes"/>
190
191       <output k="paved"      v="yes"/>
192     </if>
193
194     <if k="highway" v="byway">
195       <set k="highway" v="track"/>
196     </if>
197
198     <if k="highway" v="unsurfaced">
199       <set k="highway" v="track"/>
200     </if>
201
202     <if k="highway" v="unpaved">
203       <set k="highway" v="track"/>
204     </if>
205
206     <if k="highway" v="track">
207       <output k="highway"/>
208
209       <output k="foot"       v="yes"/>
210       <output k="horse"      v="yes"/>
211       <output k="bicycle"    v="yes"/>
212     </if>
213
214     <if k="tracktype" v="grade1">
215       <output k="paved"      v="yes"/>
216     </if>
217
218     <if k="highway" v="cycleway">
219       <output k="highway"/>
220
221       <output k="foot"       v="yes"/>
222       <output k="wheelchair" v="yes"/>
223       <output k="bicycle"    v="yes"/>
224
225       <output k="paved"      v="yes"/>
226     </if>
227
228     <if k="highway" v="footway">
229       <set k="highway" v="path"/>
230     </if>
231
232     <if k="highway" v="bridleway">
233       <set k="highway" v="path"/>
234
235       <output k="horse"      v="yes"/>
236       <output k="bicycle"    v="yes"/>
237     </if>
238
239     <if k="highway" v="pedestrian">
240       <set k="highway" v="path"/>
241
242       <output k="paved"      v="yes"/>
243     </if>
244
245     <if k="highway" v="walkway">
246       <set k="highway"  v="path"/>
247
248       <output k="paved"      v="yes"/>
249     </if>
250
251     <if k="highway" v="path">
252       <output k="highway"/>
253
254       <output k="foot"       v="yes"/>
255       <output k="wheelchair" v="yes"/>
256     </if>
257
258     <if k="highway" v="steps">
259       <output k="highway"/>
260
261       <output k="foot"       v="yes"/>
262     </if>
263
264     <if k="junction" v="roundabout">
265       <output k="junction" v="roundabout"/>
266       <output k="oneway"   v="yes"/>
267     </if>
268
269     <!-- Normalisation of access tags -->
270
271     <if v="designated" ><set v="yes"/></if>
272     <if v="permissive" ><set v="yes"/></if>
273     <if v="destination"><set v="yes"/></if>
274
275     <if v="private"><set v="no"/></if>
276
277     <!-- Generic access permissions for all transport types (to override defaults) -->
278
279     <if k="access">
280       <set k="noaccess" v="yes"/>
281     </if>
282
283     <if k="access" v="true">
284       <set k="noaccess" v="no"/>
285     </if>
286
287     <if k="access" v="yes">
288       <set k="noaccess" v="no"/>
289     </if>
290
291     <if k="noaccess" v="yes">
292       <output k="foot"       v="no"/>
293       <output k="horse"      v="no"/>
294       <output k="wheelchair" v="no"/>
295       <output k="bicycle"    v="no"/>
296       <output k="moped"      v="no"/>
297       <output k="motorbike"  v="no"/>
298       <output k="motorcar"   v="no"/>
299       <output k="goods"      v="no"/>
300       <output k="hgv"        v="no"/>
301       <output k="psv"        v="no"/>
302     </if>
303
304     <!-- Generic access permissions for classes of transport types -->
305
306     <if k="motor_vehicle">
307       <output k="moped"/>
308       <output k="motorbike"/>
309       <output k="motorcar"/>
310       <output k="goods"/>
311       <output k="hgv"/>
312       <output k="psv"/>
313     </if>
314
315     <if k="vehicle">
316       <output k="bicycle"/>
317       <output k="moped"/>
318       <output k="motorbike"/>
319       <output k="motorcar"/>
320       <output k="goods"/>
321       <output k="hgv"/>
322       <output k="psv"/>
323     </if>
324
325     <!-- Other access permissions (UK) -->
326
327     <if k="designation" v="restricted_byway">
328       <output k="foot"       v="yes"/>
329       <output k="horse"      v="yes"/>
330       <output k="wheelchair" v="yes"/>
331       <output k="bicycle"    v="yes"/>
332     </if>
333
334     <if k="designation" v="byway">
335       <output k="foot"       v="yes"/>
336       <output k="horse"      v="yes"/>
337       <output k="wheelchair" v="yes"/>
338       <output k="bicycle"    v="yes"/>
339       <output k="moped"      v="yes"/>
340       <output k="motorbike"  v="yes"/>
341       <output k="motorcar"   v="yes"/>
342     </if>
343
344     <if k="designation" v="public_bridleway">
345       <set v="bridleway"/>
346     </if>
347
348     <if k="designation" v="bridleway">
349       <output k="foot"       v="yes"/>
350       <output k="horse"      v="yes"/>
351       <output k="wheelchair" v="yes"/>
352       <output k="bicycle"    v="yes"/>
353     </if>
354
355     <if k="designation" v="public_footpath">
356       <set v="footpath"/>
357     </if>
358
359     <if k="designation" v="footpath">
360       <output k="foot"       v="yes"/>
361       <output k="wheelchair" v="yes"/>
362     </if>
363
364     <!-- Specific access rules (to override the generic ones) -->
365
366     <if k="foot"      ><output/></if>
367     <if k="horse"     ><output/></if>
368     <if k="wheelchair"><output/></if>
369     <if k="bicycle"   ><output/></if>
370     <if k="moped"     ><output/></if>
371     <if k="motorbike" ><output/></if>
372     <if k="motorcar"  ><output/></if>
373     <if k="goods"     ><output/></if>
374     <if k="hgv"       ><output/></if>
375     <if k="psv"       ><output/></if>
376
377     <!-- Normalisation of property tags -->
378
379     <if k="surface">
380       <set k="paved"/>
381     </if>
382
383     <if k="surface" v="paved">
384       <set k="paved" v="yes"/>
385     </if>
386
387     <if k="surface" v="concrete">
388       <set k="paved" v="yes"/>
389     </if>
390
391     <if k="surface" v="ashphalt">
392       <set k="paved" v="yes"/>
393     </if>
394
395
396     <if k="lanes">
397       <set k="multilane" v="yes"/>
398     </if>
399
400     <if k="lanes" v="1">
401       <set k="multilane" v="no"/>
402     </if>
403
404     <!-- Specific property rules (to override the default ones) -->
405
406     <if k="paved"    ><output/></if>
407     <if k="multilane"><output/></if>
408
409     <if k="bridge"   ><output/></if>
410     <if k="tunnel"   ><output/></if>
411
412     <!-- Output the restriction tags -->
413
414     <if k="oneway"><output/></if>
415
416     <if k="maxspeed"><output/></if>
417
418     <if k="maxweight"><output/></if>
419     <if k="maxheight"><output/></if>
420     <if k="maxwidth" ><output/></if>
421     <if k="maxlength"><output/></if>
422
423     <!-- Output the name and reference tags -->
424
425     <if k="name"><output/></if>
426     <if k="ref" ><output/></if>
427
428   </way>
429
430   <!-- Relation rules are not currently used -->
431
432   <relation>
433   </relation>
434
435 </routino-tagging>