Developed a route planner that plots the shortest path found using the A* search algorithm between two points on a real map using map data from the OpenStreetMap project. The program is written in C++ and uses the 2D rendering library IO2D to render the map data. The project covers pointers, references, OOP and it is compiled using CMake.
Both the code to parse the OSM data and the data structures which are used to store the data in the program have already been written in the IO2D OpenStreetMap example(https://github.com/cpp-io2d/P0267_RefImpl/tree/master/P0267_RefImpl/Samples/maps)
- cmake >= 3.11.3
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 7.4.0
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same instructions as make - install Xcode command line tools
- Windows: recommend using MinGW
- IO2D
- Installation instructions for all operating systems can be found here
- This library must be built in a place where CMake
find_package
will be able to find it
To compile the project, first, create a build
directory and change to that directory:
mkdir build && cd build
From within the build
directory, then run cmake
and make
as follows:
cmake ..
make
The executable will be placed in the build
directory. From within build
, you can run the project as follows:
./OSM_A_star_search
Or to specify a map file:
./OSM_A_star_search -f ../<your_osm_file.osm>