Routino SVN Repository Browser

Check out the latest version of Routino: svn co http://routino.org/svn/trunk routino

ViewVC logotype

Contents of /branches/destination-access/doc/html/configuration.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1647 - (show annotations) (download) (as text)
Fri May 1 18:01:32 2015 UTC (9 years, 10 months ago) by amb
File MIME type: text/html
File size: 10578 byte(s)
Merge changes from trunk related to translations, the Hungarian
translation and HTML formatting for mobile browsers.

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1">
7
8 <title>Routino : Configuration</title>
9
10 <!--
11 Routino documentation - configuration
12
13 Part of the Routino routing software.
14
15 This file Copyright 2008-2015 Andrew M. Bishop
16
17 This program is free software: you can redistribute it and/or modify
18 it under the terms of the GNU Affero General Public License as published by
19 the Free Software Foundation, either version 3 of the License, or
20 (at your option) any later version.
21
22 This program is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 GNU Affero General Public License for more details.
26
27 You should have received a copy of the GNU Affero General Public License
28 along with this program. If not, see http://www.gnu.org/licenses/.
29 -->
30
31 <link href="style.css" type="text/css" rel="stylesheet">
32 </head>
33
34 <body>
35
36 <!-- Header Start -->
37
38 <div class="header">
39
40 <h1>Routino : Configuration</h1>
41
42 </div>
43
44 <!-- Header End -->
45
46 <!-- Content Start -->
47
48 <div class="content">
49
50 <h2 id="H_1_1">XML Configuration Files</h2>
51
52 New in version 1.4 of Routino is the use of configuration files to allow more
53 information to be provided to the programs at run-time. The configuration files
54 that are used are:
55 <ul>
56 <li>Tagging transformation rules for the <em>planetsplitter</em> program.
57 <li>Routing profiles for the <em>router</em> program.
58 <li>Output translations for the <em>router</em> program.
59 </ul>
60
61 In keeping with the nature of the input and output files the configuration files
62 are also XML files. Each of the files uses a custom defined XML schema and an
63 XSD file is provided for each of them.
64
65 <h3 id="H_1_1_1" title="Tagging rules">Tag Transformation Rules</h3>
66
67 The default name of the tagging transformation rules XML configuration file
68 is <em>tagging.xml</em> in the same directory as the generated database files.
69 Other filenames can be specified on the command line using
70 the <tt>--tagging</tt> option. When processing the input it is possible to have
71 a different set of tagging rules for each file; for example different rules for
72 different countries.
73
74 <p>
75
76 The tagging rules allow modifying the highway tags in the source file so that
77 the routing can be performed on a simpler set of tags. This removes the special
78 case tagging rules from the source code into the configuration file where they
79 can be easily modified. Part of the provided tagging.xml file showing the rules
80 for motorway_link and motorway highway types.
81
82 <pre class="boxed">
83 &lt;?xml version="1.0" encoding="utf-8"?&gt;
84 &lt;routino-tagging&gt;
85
86 &lt;way&gt;
87
88 &lt;if k="highway" v="motorway_link"&gt;
89 &lt;set v="motorway"/&gt;
90 &lt;/if&gt;
91
92 &lt;if k="highway" v="motorway"&gt;
93 &lt;output k="highway"/&gt;
94
95 &lt;output k="motorcycle" v="yes"/&gt;
96 &lt;output k="motorcar" v="yes"/&gt;
97 &lt;output k="goods" v="yes"/&gt;
98 &lt;output k="hgv" v="yes"/&gt;
99 &lt;output k="psv" v="yes"/&gt;
100
101 &lt;output k="paved" v="yes"/&gt;
102 &lt;output k="multilane" v="yes"/&gt;
103 &lt;output k="oneway" v="yes"/&gt;
104
105 &lt;unset k="highway"/&gt;
106 &lt;/if&gt;
107 ...
108 &lt;way&gt;
109
110 &lt;/routino-tagging&gt;
111 </pre>
112
113 The rules all have the same format; an <em>if</em> or <em>ifnot</em> element at
114 the top level for matching the input and some other elements inside to be used
115 if there was a match.
116
117 <p>
118
119 Within the <em>if</em> and <em>ifnot</em> rules any of the rules can be used.
120 These are <em>if</em>, <em>ifnot</em>, <em>set</em>, <em>unset</em>,
121 <em>output</em> or <em>logerror</em> elements.
122
123 <p>
124
125 The rules for matching the <em>if</em> or <em>ifnot</em> elements are the
126 following:
127
128 <ul>
129 <li>An <em>if</em> rule that has both <em>k</em> and <em>v</em> specified is
130 only matched if a tag exists in the input that matches both.
131 <li>An <em>if</em> rule that has only the <em>k</em> attribute is matched if a
132 tag with that key exists.
133 <li>An <em>if</em> rule that has only the <em>v</em> attribute is matched for
134 each tag with that value (i.e. the contents may be used more than once).
135 <li>An <em>if</em> rule that has neither attribute specified always matches.
136 <li>An <em>ifnot</em> rule that has both <em>k</em> and <em>v</em> specified
137 is only matched if no tag exists in the input that matches both.
138 <li>An <em>ifnot</em> rule that has only the <em>k</em> attribute is matched
139 only if no tag with that key exists.
140 <li>An <em>ifnot</em> rule that has only the <em>v</em> attribute is only
141 matched if no tag with that value exists.
142 <li>An <em>ifnot</em> rule that has neither attribute specified never matches.
143 </ul>
144
145 <p>
146
147 For <em>set</em>, <em>unset</em>, <em>output</em> or <em>logerror</em> elements
148 inside of an <em>if</em> rule an unspecified value for the <em>k</em>
149 or <em>v</em> attribute is replaced by the values from the tag that matched the
150 outer <em>if</em> rule. This makes it simple to delete tags that match a
151 particular rule without having to specify the parameters more than once. For
152 elements inside of an <em>ifnot</em> element an unspecified value for
153 the <em>k</em> or <em>v</em> attribute is replaced by the values from the
154 outer <em>ifnot</em> rule. This means that either the outer <em>ifnot</em>
155 element or the inner element must specify both <em>k</em> and <em>v</em>
156 attributes between them. For nested <em>if</em> or <em>ifnot</em> elements the
157 outer <em>k</em> and <em>v</em> attributes are not inherited by the inner
158 elements.
159
160 <p>
161
162 The <em>set</em> and <em>unset</em> elements either create or delete a tag from
163 the input data that was read from the file. If the <em>set</em> element is used
164 and the tag already exists then it is modified. The <em>output</em> element
165 adds a tag to the set that will be used by Routino to determine the data
166 properties.
167
168 <p>
169
170 The <em>logerror</em> element will cause an error message to be added to the
171 error log file that reports that the key and attribute combination are not
172 recognised. If the <em>k</em> attribute is specified but not the <em>v</em>
173 attribute then the tag value that matches the specified key is looked up and
174 used. An additional <em>message</em> attribute can be specified to be printed
175 at the end of the logged error.
176
177 <p>
178 The default logged error message is:
179 <pre class="boxed">
180 Node XXX has an unrecognised tag 'key' = 'value' (in tagging rules); ignoring it.
181 </pre>
182
183 <p>
184 The specified <em>message</em> attribute will replace the final part of the
185 logged error.
186
187
188 <h3 id="H_1_1_2" title="Profiles">Routing Profiles</h3>
189
190 The default name of the routing profiles XML configuration file
191 is <em>profiles.xml</em> in the same directory as the database files. Other
192 filenames can be specified on the command line using the <tt>--tagging</tt>
193 option.
194
195 <p>
196
197 The purpose of this configuration file is to allow easy modification of the
198 routing parameters so that they do not all need to be specified on the command
199 line. In versions of Routino before version 1.4 the default routing parameters
200 (preferred highways, preferred speeds etc) were contained in the source code,
201 now they are in a configuration file. When calculating a route
202 the <tt>--profile</tt> option selects the named profile from the configuration
203 file.
204
205 <p>
206
207 Part of the provided profiles.xml file showing the parameters for transport on
208 foot is shown below:
209
210 <pre class="boxed">
211 &lt;?xml version="1.0" encoding="UTF-8" ?&gt;
212 &lt;routino-profiles&gt;
213
214 &lt;profile name="foot" transport="foot"&gt;
215 &lt;speeds&gt;
216 ...
217 &lt;speed highway="cycleway" kph="4" /&gt;
218 &lt;speed highway="path" kph="4" /&gt;
219 &lt;speed highway="steps" kph="4" /&gt;
220 &lt;/speeds&gt;
221 &lt;preferences&gt;
222 ...
223 &lt;preference highway="cycleway" percent="95" /&gt;
224 &lt;preference highway="path" percent="100" /&gt;
225 &lt;preference highway="steps" percent="80" /&gt;
226 &lt;/preferences&gt;
227 &lt;properties&gt;
228 &lt;property type="paved" percent="50" /&gt;
229 &lt;property type="multilane" percent="25" /&gt;
230 &lt;property type="bridge" percent="50" /&gt;
231 &lt;property type="tunnel" percent="50" /&gt;
232 ...
233 &lt;/properties&gt;
234 &lt;restrictions&gt;
235 &lt;oneway obey="0" /&gt;
236 &lt;weight limit="0.0" /&gt;
237 &lt;height limit="0.0" /&gt;
238 &lt;width limit="0.0" /&gt;
239 &lt;length limit="0.0" /&gt;
240 &lt;/restrictions&gt;
241 &lt;/profile&gt;
242 &lt;profile name="horse" transport="horse"&gt;
243 ...
244 &lt;/profile&gt;
245 ...
246 &lt;/routino-profiles&gt;
247 </pre>
248
249
250 <h3 id="H_1_1_3" title="Translations">Output Translations</h3>
251
252 The default name of the output translations XML configuration file
253 is <em>translations.xml</em> in the same directory as the database files. Other
254 filenames can be specified on the command line using the <tt>--translations</tt>
255 option.
256
257 <p>
258
259 The generated HTML and GPX output files (described in the next section) are
260 created using the fragments of text that are defined in this file. Additional
261 languages can be added to the file and are selected using
262 the <tt>--language</tt> option to the router. If no language is specified the
263 first one in the file is used.
264
265 <p>
266
267 Part of the provided translations.xml file showing some of the English language
268 (en) translations is shown below:
269
270 <pre class="boxed">
271 &lt;?xml version="1.0" encoding="utf-8"?&gt;
272 &lt;routino-translations&gt;
273
274 &lt;language lang="en"&gt;
275 ...
276 &lt;turn direction="-4" string="Very sharp left" /&gt;
277 &lt;turn direction="-3" string="Sharp left" /&gt;
278 &lt;turn direction="-2" string="Left" /&gt;
279 ...
280 &lt;heading direction="-4" string="South" /&gt;
281 &lt;heading direction="-3" string="South-West" /&gt;
282 &lt;heading direction="-2" string="West" /&gt;
283 ...
284 &lt;route type="shortest" string="Shortest" /&gt;
285 &lt;route type="quickest" string="Quickest" /&gt;
286 &lt;output-html&gt;
287 ...
288 &lt;/output-html&gt;
289 &lt;output-gpx&gt;
290 ...
291 &lt;/output-gpx&gt;
292 &lt;/language&gt;
293 &lt;/routino-translations&gt;
294 </pre>
295
296 </div>
297
298 <!-- Content End -->
299
300 <!-- Footer Start -->
301
302 <div class="footer">
303
304 <address>
305 &copy; Andrew M. Bishop - <a href="http://www.routino.org/">http://www.routino.org/</a>
306 </address>
307
308 </div>
309
310 <!-- Footer End -->
311
312 </body>
313
314 </html>