48 lines
2.2 KiB
Plaintext
48 lines
2.2 KiB
Plaintext
Compilation
|
|
---
|
|
|
|
Compiling the source code is easy. If you are running a decent linux
|
|
installing dependencies and running make should suffic. Make sure the following
|
|
dependencies are installed:
|
|
|
|
- Boost 1.37+
|
|
- kdtree++ 0.7+ (0.62 does not work with g++ 4.0+)
|
|
- sparsehash 1.4+
|
|
- g++ 4.4+
|
|
- libxml2
|
|
- make
|
|
|
|
Once the dependencies are properly installed running 'make' should build the
|
|
binaries. The Makefile has been built for Ubuntu 10.04, but it should work
|
|
under any recent Linux. It is possible to build and run the binaries under
|
|
OS X, but for the time being manual compilation is required. Nevertheless,
|
|
the code should compile under any recent flavor of UNIX.
|
|
|
|
Running the Server
|
|
---
|
|
Running the server requires preprocessing data from Openstreetmap. To do so you
|
|
you need to acquire an .osm file. Beware of the world file, because you need
|
|
serious computing power to preprocess it. Start with a smaller country. The
|
|
preprocessing runs in three steps, all done by seperate programs.
|
|
|
|
'extractNetwork file.osm' extracts the road network of an osm file. This is
|
|
necessary, because the osm data is not made to support fast routing out of the
|
|
box. The output of the step is a file called 'file.osrm'
|
|
|
|
'createHierarchy file.osmr' preprocesses the road network and computes additional
|
|
information that is exploited later to speed up the path computation. The output
|
|
of this step consists of two file 'file.osrm.hsgr' and 'file.osrm.nodes'. The first
|
|
file is the so-called hierarchy that speeds up the path computation while the
|
|
latter one carries (among other things) geographical information.
|
|
|
|
'routed file.osmr.hsgr file.osm.hsgr' starts the server on TCP Port 5000. The
|
|
server communicates over http and can be queried by any browser or http-capable
|
|
command line tool. The server responds with KML-formatted output.Assume the
|
|
server is installed on machine localhost and a map containing the Netherlands
|
|
has been installed. Computing a route from Amsterdam to Den Haag can be done by
|
|
calling
|
|
http://localhost:5000/route&52.370197&4.890444&52.048167&4.3175
|
|
which gives a shortest (fastest) route between the two points. To locate a
|
|
point in the map that is nearest to a given coordinate use the following call
|
|
http://localhost:5000/locate&52.048167&4.3175
|