Merge branch 'upstream'
[routino] / doc / html / readme.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3
4 <!--
5  Routino documentation - algorithm
6
7  Part of the Routino routing software.
8
9  This file Copyright 2008-2010 Andrew M. Bishop
10
11  This program is free software: you can redistribute it and/or modify
12  it under the terms of the GNU Affero General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15
16  This program is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  GNU Affero General Public License for more details.
20
21  You should have received a copy of the GNU Affero General Public License
22  along with this program.  If not, see http://www.gnu.org/licenses/.
23 -->
24
25 <HEAD>
26 <TITLE>Routino : Software</TITLE>
27 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
28 <LINK href="style.css" type="text/css" rel="stylesheet">
29 </HEAD>
30
31 <BODY>
32
33 <!-- Header Start -->
34
35 <div class="header" align="center">
36
37 <h1>Routino : Software</h1>
38
39 <hr>
40 </div>
41
42 <!-- Header End -->
43
44 <!-- Content Start -->
45
46 <div class="content">
47
48 <h2><a name="H_1_1" title="Introduction"></a>Routino Introduction</h2>
49
50 Routino is an application for finding a route between two points using the
51 dataset of topographical information collected by
52 <a class="ext" title="OpenStreetMap" href="http://www.openstreetmap.org/">http://www.OpenStreetMap.org</a>.
53
54 <p>
55
56 Starting from the raw OpenStreetMap data (in the form of the '.osm' XML files
57 available on the internet) a custom database is generated that contains the
58 information useful for routing.  With this database and two points specified by
59 latitude and longitude an optimum route (either shortest or quickest) is
60 determined.  The route is calculated for OpenStreetMap highways (roads, paths
61 etc) using one of the common forms of transport defined in OpenStreetMap (foot,
62 bicycle, horse, motorcar, motorbike etc).
63
64 <p>
65
66 When processing the OpenStreetMap data the types of highways are recorded and
67 these set default limits on the types of traffic allowed.  More specific
68 information about permissions for different types of transport are also recorded
69 as are maximum speed limits.  Further restrictions like oneway streets, weight,
70 height, width and length limits are also included where specified. Additionally
71 a set of properties of each highway are also recorded.  The processing of the
72 input file is controlled by a configuration file which determines the
73 information that is used.
74
75 <p>
76
77 When calculating a route the type of transport to be used is taken into account
78 to ensure that the known restrictions are followed.  Each of the different
79 highway types can further be allowed or disallowed depending on preferences.
80 For each type of highway a default speed limit is defined (although the actual
81 speed used will be the lowest of the default and any specified in the original
82 data).  To make use of the information about restrictions the weight, height,
83 width and length of the transport can also be specified.  Further preferences
84 about road properties (e.g. paved or not) can also be selected.
85
86 <p>
87
88 The result of calculating the route can be presented in several different ways.
89 An HTML file can be produced that contains a description of the route to take
90 with instructions for each of the important junctions.  The contents of the file
91 are created based on a set of translations specified in a configuration file.
92 The route is also available in a
93 <a class="ext" title="GPX format" href="http://www.topografix.com/gpx.asp">GPX (GPS eXchange) XML format</a>.
94 format file containing either every point and highway segment (a track file) or
95 just a waypoint and translated instructions for the important junctions (a route
96 file).
97 Additionally there are two plain text files that contain all data points or just
98 the important ones (intended for debugging and further processing).
99
100 <p>
101
102 One of the design aims of Routino was to make the software are flexible as
103 possible in selecting routing preferences but also have a sensible set of
104 default values.  Another design aim was that finding the optimum route should be
105 very fast and most of the speed increases come from the carefully chosen and
106 optimised data format.
107
108
109 <h2><a name="H_1_2"></a>Disclaimer</h2>
110
111 The route that is calculated by this software is only as good as the input data.
112
113 <p>
114
115 Routino comes with ABSOLUTELY NO WARRANTY for the software itself or the route
116 that is calculated by it.
117
118
119 <h2><a name="H_1_3"></a>Demonstration</h2>
120
121 A live demonstration of the router for the UK is available on the internet:
122 <br>
123 <a title="Routino demo" href="http://www.routino.org/uk/">http://www.routino.org/uk/</a>
124
125 <p>
126
127 The source code download available below also includes a set of files that can
128 be used to create your own interactive map.
129
130 <p>
131
132 The interactive map is made possible by use of the OpenLayers Javascript
133 library from <a class="ext" href="http://www.openlayers.org" title="OpenLayers">http://www.openlayers.org/</a>.
134
135
136 <h2><a name="H_1_4"></a>Documentation</h2>
137
138 A full set of
139 <a href="index.html" title="Documentation">documentation</a>
140 is available that describes how to install and use the programs as well as
141 what should go in the configuration files and how it works.
142
143
144 <h2><a name="H_1_5"></a>Status</h2>
145
146 Version 1.0 of Routino was released on 8th April 2009.
147 <br>
148 Version 1.1 of Routino was released on 13th June 2009.
149 <br>
150 Version 1.2 of Routino was released on 21st October 2009.
151 <br>
152 Version 1.3 of Routino was released on 21st January 2010.
153 <br>
154 Version 1.4 of Routino was released on 31st May 2010.
155 <br>
156 Version 1.4.1 of Routino was released on 10th July 2010.
157 <br>
158 Version 1.5 of Routino was released on 30th October 2010.
159 <br>
160 Version 1.5.1 of Routino was released on 13th November 2010.
161
162 <p>
163
164 The full version history is available in the NEWS file.
165
166
167 <h3><a name="H_1_5_1" title="Changes"></a>Changes in Version 1.5</h3>
168
169 <dl>
170   <dt>Bug fixes:
171   <dd>Check that number of nodes/segments/ways doesn't exceed numerical limits.
172   <br>Allow 32-bit systems to seek within files larger than 4GB.
173   <br>Allow nearly 4G nodes to be stored instead of 2G before.
174   <br>Added rules to makefile for installation (paths specified in top-level).
175   <br>Stricter checking of UTF-8 in XML files and better UTF-8 output.
176   <br>Improve error message if parsing of command line options fail.
177   <br>Fix bugs in router's --help-profile-json and --help-profile-perl options.
178   <br>Rename heapsort function to allow compilation on Mac OS with no change.
179   <br>Reduce impact of property preferences close to 50% by using sqrt().
180
181   <dt>Documentation:
182   <dd>Update documentation to reflect changes in program usage and function.
183
184   <dt>OSM tagging
185   <dd>Traffic restrictions on nodes are now included in default tagging file.
186   <br>Added processing for ferry routes (as pseudo-highway type 'ferry').
187   <br>Process foot and bicycle route relations to create new properties.
188
189   <dt>Configuration Files:
190   <dd>Added Dutch output translations.
191   <br>Added ferry information to profiles.
192   <br>Added foot and bicycle route relation processing.
193
194   <dt>planetsplitter
195   <dd>The slim mode now includes the output data as well as the temporary data.
196   <br>The slim mode is now a separate executable and not a command line option.
197   <br>Traffic restrictions on nodes are now understood when parsing OSM files.
198   <br>Falls back to installed tagging.xml configuration file as last resort.
199
200   <dt>router:
201   <dd>Added a slim mode (as a separate executable and not a command line option).
202   <br>Traffic will not be routed through a node that does not allow it.
203   <br>Falls back to installed profiles.xml & translations.xml files as last resort.
204
205   <dt>filedumper:
206   <dd>Added a slim mode (as a separate executable and not a command line option).
207
208   <dt>Web pages:
209   <dd>Added Dutch translation of router.html.
210 </dl>
211
212 <h3><a name="H_1_5_2"></a>Additional Changes in Version 1.5.1</h3>
213
214 <dl>
215   <dt>Bug fixes:
216   <dd>Ensure that enough memory is allocated for filenames.
217   <br>Fix bug that sometimes causes crash when processing route relations.
218
219   <dt>Documentation:
220   <dd>Update documentation to reflect changes in program usage and function.
221
222   <dt>Programs:
223   <dd>Add an option to make the output more suitable for a log file.
224
225   <dt>Documentation:
226   <dd>Update documentation to reflect changes in program usage.
227 </dl>
228
229
230 <h3><a name="H_1_5_3"></a>License</h3>
231
232 This program is free software: you can redistribute it and/or modify it under
233 the terms of the
234 <a class="ext" title="Affero GPLv3" href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">GNU Affero General Public License</a>
235 as published by the Free Software Foundation; either version 3 of the License,
236 or (at your option) any later version.
237
238 <p>
239
240 It is important to note that for this program I have decided to use the
241 <em>Affero GPLv3</em> instead of just using the GPL.  This license adds
242 additional requirements to anybody who provides a networked service using this
243 software.
244
245
246 <h3><a name="H_1_5_4"></a>Copyright</h3>
247
248 Routino is copyright Andrew M. Bishop 2008-2010.
249
250
251 <h2><a name="H_1_6"></a>Download</h2>
252
253 The <a title="Download directory" href="http://www.routino.org/download/">download directory</a>
254 contains the latest version of the source code.
255
256
257 </div>
258
259 <!-- Content End -->
260
261 <!-- Footer Start -->
262
263 <div class="footer" align="center">
264 <hr>
265
266 <address>
267 &copy; Andrew M. Bishop = &lt;amb "at" gedanken.demon.co.uk&gt;
268 </address>
269
270 </div>
271
272 <!-- Footer End -->
273
274 </BODY>
275
276 </HTML>