The Edmonton City GPS Navigation Systems project provides a graphical interface to navigate and determine the shortest path between two points in Edmonton using a map. The system includes a server component for processing and a client component for interacting with the map.
- /server/: Server-side code and resources
server.cpp
: Main server implementationdijkstra.cpp
: Implementation of Dijkstra's algorithmdigraph.cpp
: Implementation of directed graph data structuredigraph.h
: Header file for directed graphwdigraph.h
: Header file for weighted directed graphdijkstra.h
: Header file for Dijkstra's algorithmedmonton-roads-2.0.1.txt
: Road network data fileMakefile
: Build instructions for server components
- /client/
client.py
: Client-side implementation
- /map/: Directory for map-related resources
Makefile
: Top-level build instructionsREADME
: Project documentation
make server
: Builds the executableserver
make clean
: Removes all object files and the executablemake server.o
: Builds the object file forserver.cpp
make digraph.o
: Builds the object file fordigraph.cpp
make dijkstra.o
: Builds the object file fordijkstra.cpp
make run
: Builds the executableserver
and runs both the server and the clientmake clean
: Removes all object files, executable, and named pipesmake all
: Executes both compile and run targetsmake compile
: Builds the executableserver
in the server directory
- Navigate to the
server
directory in the terminal:cd server
- Compile and link the server-related files:
make server
- Return to the soln directory and run both the server and the client:
cd .. make run
- Interact with the map:
- Click on locations with the left mouse button to select a starting point and an endpoint.
- The shortest path between the two points will be highlighted.
- Use the W, S, D, A keys to navigate through the map.
- Use Q and E keys to zoom in and out, respectively.
- Clean up after running:
make clean
- Follow the running instructions accurately to ensure proper functionality.
- The program is designed to run on Linux-based operating systems only.
- Ensure the server executable is built before running the Makefile in the soln directory.
- The client program must not be run before the server program; otherwise, the program will fail.
- When selecting the second point on the map, the server will send an 'E', and when the map window is closed, the server will send a 'Q'.