OTFMap ×

 Tags: C++STLGTKEZGLOpenStreetMap API

Over the span of four months, our team structured the project into four major milestones, each with well-defined objectives.

The first milestone focused on organizing large volumes of data into structured formats and extending the functionality of the OpenStreetMap API by developing custom functions for later use. To support this, we implemented efficient data structures using STL containers such as maps, sets, vectors, and queues.

The second milestone concentrated on building the map’s frontend. We integrated features such as street rendering, points of interest, subway visualization (with line overlays), and bike lane support. This was achieved using the EZGL graphics library, which is built on GTK 3 and Cairo. The primary challenge at this stage was ensuring stability and robustness, particularly in preventing segmentation faults during rendering.

The third milestone introduced pathfinding functionality between intersections on the map. We implemented both Dijkstra’s algorithm and the A* algorithm, then visualized the computed routes through our GTK-based Mapper interface.

In the final milestone, we addressed the Travelling Courier Problem by applying multiple heuristic approaches, including Greedy, Multi-Start, 3-opt, and Hill-Climbing. These optimizations led our team to finish in the top 10% out of 91 participating teams.

The overarching theme of the project was eco-friendly GIS, with a focus on promoting sustainable transportation through public transit features. This Agile Software Development experience significantly strengthened my expertise in C++, data structures, and algorithms.

Due to academic integrity, the source code cannot be shared publicly. However, it can be provided upon request. A demo of the project is available through the link.

 Demo:  Click Here   GitHub:  Unavailable