GIS Mapper ×
Geographic Information System Mapper project modal image

 Tags: C++STLGTKEZGLOpenStreetMap API

Over the course of four months, we broke down this project into four major milestones, each with its own specific objectives.

The first milestone involved organizing vast amounts of data into structured formats, as well as utilizing and extending the OpenStreetMap API by developing useful functions that would be utilized in later milestones. To achieve this, we created our data structures using various STL structures such as maps, sets, vectors, and queues.

The second milestone centered around the development of the map's frontend, which included streets, points of interest, subway mode (shows subway lines), and bike mode (shows bike lanes) using a graphics library called EZGL, which depends on GTK 3 and Cairo. The biggest challenge here, unironically, was avoiding segmentation faults.

For the third milestone, we implemented pathfinding between two intersection points on the map using Dijkstra and A* algorithms. We also showcased the pathfinding (from one point to another) in our GTK Mapper.

In the final milestone, we tackled the Travelling Courier Problem, utilizing various heuristics such as Greedy, Multi-Start, 3-opt, and Hill-Climbing. Our team's efforts paid off, as we finished in the top 10% (out of 91 teams).

Our focus on the map was eco-friendly GIS, with features that promoted public transit. Working on this Agile Software Development project was a remarkable experience that strengthened my skills in C++, Data Structures, and Algorithms.

While I am unable to share the code due to academic integrity, I can provide it upon request. The demo is available through the link above.

 Demo:  Click Here GitHub:  Unavailable