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.osmr'
|
||
|
|
||
|
'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.osmr.hsgr' and 'file.osm.hsgr'. 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
|