GIS Navigation & Routing
A desktop mapping application built in C++ from raw OpenStreetMap data — trip planning, journaling, and turn-by-turn navigation for 10+ major cities.
For a team course project at the University of Toronto, we built a complete desktop Geographic Information System in C++ — not on top of an existing maps SDK, but from raw OpenStreetMap data up: parsing, rendering, and routing for more than ten major cities.
What it does
The app renders and processes over a million map elements through a unified GTK interface, folding trip planning, journaling, and real-time navigation into a single flow — the common user journeys take two clicks.
Under the hood
- Multithreaded pathfinding with A* and Dijkstra for point-to-point routing.
- A 3-opt optimizer for a courier-style variation of the Traveling Salesman problem.
- Level-of-detail rendering so the map stays smooth from street level to city scale.
Making it fast
The most satisfying part was performance work: profiling to find the real bottlenecks instead of guessing, then reworking the hot paths - up to 150% runtime improvement across every level of detail.