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 executableservermake clean: Removes all object files and the executablemake server.o: Builds the object file forserver.cppmake digraph.o: Builds the object file fordigraph.cppmake dijkstra.o: Builds the object file fordijkstra.cpp
make run: Builds the executableserverand 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 executableserverin the server directory
- Navigate to the
serverdirectory 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'.