Imported Upstream version 1.4.1
[routino] / doc / html / data.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 - data
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 : Data</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 : Data</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"></a>Data</h2>
49
50 A router relies on data to be able to find a route.
51
52 <h3><a name="H_1_1_1"></a>OpenStreetMap Data</h3>
53
54 The data that is collected by the OpenStreetMap project consists of
55 <em>nodes</em>, <em>ways</em> and <em>relations</em>.
56 <dl>
57   <dt>Node
58   <dd>A node is a point that has a latitude and longitude and attributes that
59       describe what type of point it is (part of a way or a place of interest for
60       example).
61   <dt>Way
62   <dd>A way is a collection of nodes that when joined together define something
63       (for example a road, a ralway, a boundary, a building, a lake etc).  The
64       ways also have attributes that define them (speed limits, type of road and
65       restrictions for example).
66   <dt>Relation
67   <dd>A relation is a collection of items (usually ways) that are related to
68       each other for some reason (highways that make up a route for example).
69 </dl>
70
71 The
72 <a class="ext" title="OpenStreetMap Wiki" href="http://wiki.openstreetmap.org/wiki/Main_Page">OpenStreetMap Wiki</a>
73 explains the data much better than I can.
74
75 <h3><a name="H_1_1_2"></a>Router Data</h3>
76
77 The information that is needed by a routing algorithm is only a subset of the
78 information that is collected by the OpenStreetMap project.  For routing what is
79 required is information about the location of roads (or other highways), the
80 connections between the highways and the properties of those highways.
81 <dl>
82   <dt>Location of highways (nodes)
83   <dd>The locations of things is provided by the nodes from the OpenStreetMap
84       data.  The nodes are the only things that have coordinates in
85       OpenStreetMap and everything else is made up by reference to them.  Not
86       all of the nodes are useful, only the ones that are part of highways.  The
87       location of the nodes is stored but none of the other attributes are
88       currently used by the router.
89   <dt>Location of highways (ways)
90   <dd>The location of the highways is defined in the OpenStreetMap data by the
91       ways.  Only the highway ways are useful and the other ways are discarded.
92       What remains is lists of nodes that join together to form a section of
93       highway.  This is further split into <em>segments</em> which are
94       individual parts of a way connected by two nodes.
95   <dt>Properties of highways (tags)
96   <dd>The ways that belong to highways are extracted from the data in the
97       previous step and for each way the useful information for routing is
98       stored.  For the router the useful information is the type of highway, the
99       speed limit, the allowed types of transport and other restrictions
100       (one-way, min height, max weight etc).
101   <dt>Connections between highways
102   <dd>The connections between highways are defined in the OpenStreetMap data by
103       ways that share nodes.  Since the ways may join in the middle and not just
104       the ends it is the segments defined above that are not part of the
105       OpenStreetMap data that are most important.
106 </dl>
107
108 The information that is extracted from the OpenStreetMap data is stored in an
109 optimised way that allows the routing to be performed quickly.
110
111 <h3><a name="H_1_1_3" title="Data Tags"></a>Interpreting Data Tags</h3>
112
113 The <em>tags</em> are the information that is attached to the nodes and ways in
114 OpenStreetMap.  The router needs to interpret these tags and use them when
115 deciding what type of traffic can use a highway (for example).
116 <p>
117
118 There are no well defined rules in OpenStreetMap about tagging, but there is
119 guidance on the
120 <a class="ext" title="Map Features" href="http://wiki.openstreetmap.org/index.php/Map_Features">OpenStreetMap Wiki "Map_Features"</a>
121 page.  This describes a set of recommended tags but these are not universally used
122 so it is up to each application how to interpret them.
123 <p>
124
125 The <a title="Tagging" href="tagging.html">tagging rules</a> that the router
126 uses are very important in controlling how the router works.  With Routino the
127 data tags can be modified when the data is imported to allow customisation of
128 the information used for routing.
129
130
131 <h3><a name="H_1_1_4" title="Problems With Data"></a>Problems With OpenStreetMap Data</h3>
132
133 The route that can be found is only as good as the data that is available.  This
134 is not intended as a criticism of the OpenStreetMap data; it is generally good.
135 <p>
136 There are some problems that are well known and which affect the router.  For
137 example highways might be missing because nobody has mapped them.  A highway may
138 be wrongly tagged with incorrect properties, or a highway might be missing
139 important tags for routing (e.g.  speed limits).  There can also be problems
140 with highways that should join but don't because they do not share nodes.
141 <p>
142 A lot of these problems can be found using the interactive data visualiser that
143 uses the same Routino rouing database.
144
145
146 </div>
147
148 <!-- Content End -->
149
150 <!-- Footer Start -->
151
152 <div class="footer" align="center">
153 <hr>
154
155 <address>
156 &copy; Andrew M. Bishop = &lt;amb "at" gedanken.demon.co.uk&gt;
157 </address>
158
159 </div>
160
161 <!-- Footer End -->
162
163 </BODY>
164
165 </HTML>