Skip to content

Plot the shortest path between two nodes on Open Street Map using A* search Algorithm. Render the path on a map using IO2D library and Open Street Map data.

License

Notifications You must be signed in to change notification settings

adityakrmaurya/Route-Planning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Route Planning

This program uses A* search algorithm to find path between start and end coordinates entered by the user. It is first project of C++ Udacity Nanodegree Program. It focuses on foundational topics like classes, list, pointers and references.

Cloning

When cloning this project, be sure to use the --recurse-submodules flag. Using HTTPS:

git clone https://github.com/adityakrmaurya/Route-Planning.git --recurse-submodules

or with SSH:

git clone git@github.com:adityakrmaurya/Route-Planning.git --recurse-submodules

Compiling and Running

Dependencies for Running Locally

Compiling

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

Running

The executables will be placed in the bin directory. From within build, you can run the project as follows:

../bin/<name-of-parent-directory> -f ../map.osm

Testing

For exercises that have unit tests, the project must be built with the approprate test cpp file. This can be done by passing a string with the -DTESTING flag in cmake. For example, from the build directory:

cmake -DTESTING="RouteModel" ..
make

Those commands will build the code with the tests for the "Fill Out Route Model" exercise. The tests can then be run from the build directory as follows:

../bin/test

Exercises with tests will specify which string to pass with -DTESTING, but a table is given below with the complete list for reference:

Exercise Name -DTESTING String Value
Fill Out Route Model "RouteModel"
Fill Out Node Class "RMNodeClass"
Create RouteModel Nodes "RMSNodes"
Write the Distance Function "NodeDist"
Create Road to Node Hashmap "NodeToRoad"
Write FindNeighbors "FindNeighbors"
Find the Closest Node "FindClosest"
Write the A* Search Stub "AStarStub"
Finish A* Search "AStarSearch"

Output

Output-img.png

About

Plot the shortest path between two nodes on Open Street Map using A* search Algorithm. Render the path on a map using IO2D library and Open Street Map data.

Resources

License

Stars

Watchers

Forks