Imported Upstream version 1.4.1
[routino] / doc / INSTALL.txt
1                            Routino : Installation
2                            ======================
3
4
5 Compilation
6 -----------
7
8    This program has been written to run on Linux, no cross-platform
9    compatibility has been specifically included but on the other hand
10    nothing platform specific has been knowingly included either.
11
12    Any information on improving the compilation process on anything other
13    than 32-bit x86 Linux is welcome.
14
15    No external libraries are required and the programs are written in
16    standard C language.
17
18    To compile the programs just type 'make'.
19
20
21 Installation
22 ------------
23
24    After compilation the executable files are copied into the directory
25    web/bin and the default XML configuration files are copied into the
26    directory web/data. This is in preparation for using the supplied
27    example web pages but is also a useful location to copy the files from
28    for normal use.
29
30    The executable files are called 'planetsplitter', 'router' and 'filedumper'
31    (also 'tagmodifier' for debugging tag modifications). They can be copied
32    to any location and need no special installation environment.
33
34    The default configuration files are called 'profiles.xml', 'tagging.xml'
35    and 'translations.xml'. The names of the configuration files can be
36    specified on the command line but by default are also looked for in the
37    directory that contains the routing database.
38
39
40 Example Web Page
41 ----------------
42
43    The directory 'web' contains a set of files that can be used to create a
44    working set of web pages with interfaces to the routing algorithm.
45
46    The files in the 'web' directory will require copying to a location that
47    is accessible by a web server. After copying the files some of them
48    need to be edited; search through the files for lines that contain the
49    words "EDIT THIS" and make appropriate edits. The files that need
50    editing are 'paths.pl' (to set the directory paths) and 'router.js' and
51    'visualiser.js' to limit the range of the visible map (latitude,
52    longitude and zoom).
53
54
55 Configuration of web files
56 --------------------------
57
58    The assumption in this description is that the whole of the directory
59    called web is copied into a directory that is accessible by an Apache
60    web server.
61
62     **************************************************************************
63     **** This is not a secure configuration but an easy one to configure. ****
64     **** Only the directory 'www' should be accessible by the web server. ****
65     **** Do not use this configuration unmodified in a public web server. ****
66     **************************************************************************
67
68    The directory structure is as follows:
69
70    web/
71     |
72     + /bin/                    <- The Routino executable files (when compiled).
73     |
74     + /data/                   <- The Routino database and default configuration
75     |                             files.
76     |
77     + /results/                <- An empty directory to store the results.
78     |
79     + /www/                    <- The files that must be available to the web
80         |                         server are below this level.
81         |
82         + /openlayers/         <- A directory to hold the OpenLayers scripts.
83         |
84         + /routino/            <- The main HTML, Javascript, CSS and CGI files.
85
86
87    The directory 'bin' will be filled by running the compilation process.
88    For a secure installation the 'bin' directory should be outside of the
89    web server, the file 'www/routino/paths.pl' contains the path to the 'bin'
90    directory.
91
92    The directory 'data' must contain the Routino database and is also the
93    default location for the configuration files. The routing database is
94    created by downloading the OSM files for the region of interest and
95    running the 'planetsplitter' program. There is a script in the directory
96    that will download the OSM files and create the required database. The
97    script should be edited to set the names of the files to be downloaded.
98    For a secure installation the 'data' directory should be outside of the
99    web server, the file 'www/routino/paths.pl' contains the path to the 'data'
100    directory.
101
102    The directory 'results' is a temporary directory that it used to hold the
103    GPX and text files generated by the Routino router. The directory must
104    be writable by the web server process since it is the CGI scripts that
105    are run by the web server that writes the results here. For a secure
106    installation the results directory should be outside of the web server,
107    the file 'www/routino/paths.pl' contains the path to the results
108    directory.
109
110    The directory 'www' and its sub-directories are the only ones that need
111    to be within the web server accessible directory.
112
113    The directory 'www/openlayers' must be filled with the openlayers
114    Javascript library that can be downloaded from
115    http://www.openlayers.org/. (This version of Routino has been tested
116    with OpenLayers library version 2.8). The files must be installed so
117    that the file 'www/openlayers/OpenLayers.js' and the directories
118    'www/openlayers/img/', 'www/openlayers/theme/' all exist. There is a script
119    in the directory that will automatically download and organise the
120    files.
121
122    The directory 'www/routino' contains the main HTML, Javascript and CSS
123    files as well as the CGI scripts that perform the server-side
124    functions. The description below lists all of the files that contain
125    editable information.
126
127    paths.pl
128           This contains the names of the directories that contain the
129           executable files, router database and temporary results.
130
131    router.pl
132           This file contains the filename prefix for the routing database
133           files (only needed if planetsplitter is run with the --prefix
134           option).
135
136    router.js
137           The parameters in this file control the boundary of the visible
138           map (defaults to UK), the minimum and maximum zoom levels
139           (defaults to between 4 and 15 inclusive) and the source of map
140           tiles (defaults to the main OpenStreetMap tile server).
141
142    visualiser.js
143           The same parameters as in router.js are in this file.
144
145
146 Configuration of web server
147 ---------------------------
148
149    The file 'www/routino/.htaccess' contains all of the Apache configuration
150    options that are required to get the example web pages running. The
151    only problem is that because of the way that the "AllowOverride" option
152    works one of the configuration options has been commented out. This
153    must be enabled in the main Apache server configuration file.
154
155
156 --------
157
158 Copyright 2008-2010 Andrew M. Bishop.