This project implements a console-based navigation system using OpenStreetMap data, focusing on the UIC East campus. It demonstrates the practical application of graph theory, data structures, and algorithms in a real-world scenario.
- Custom Graph implementation using adjacency list
- Parsing of OpenStreetMap XML data
- Building navigation between campus locations
- Implementation of Dijkstra's algorithm for shortest path finding
- Efficient nearest node and building search algorithms
- Advanced C++ programming
- Graph theory and implementation
- XML parsing
- Geospatial data handling
- Algorithm design and optimization
- Memory management in C++
- Clone the repository
- Compile the project:
make build
- Run the program:
make run
The program prompts for two building names or abbreviations on the UIC East campus. It then:
- Locates the buildings on the map
- Finds an optimal meeting point
- Calculates and displays the shortest paths from both starting points to the meeting point
graph.h
: Custom Graph class implementationapplication.cpp
: Main application logicosm.cpp
&osm.h
: OpenStreetMap data parsingdist.cpp
: Distance calculation utilities
Contributions are welcome! Please feel free to submit a Pull Request.
- OpenStreetMap for providing the map data
- TinyXML2 library for XML parsing