# StudentLifeMap A GTK Application that maps cities using the OpenStreetMap Library coded in C++. ![Screenshot](/images/LoadMap.png) ## Features ![Manual](/images/Mapual.png) ### A. Pathfinidng through intersections > When two intersections are clicked successively, the map will find the closest path between them using an A* algorithm. > It uses the speed limit of the roads and Euclidean distance to the destination as heuristics to optimize computing time. > ![alt text](images/PathFinding.png) ### B. Finding Nearby Restaurants > When a store name is entered into the search bar, the map searches through OpenStreetMap amenities with the fast_food tag and > plots the coordinates on the map. > ![alt text](/images/FoodSearch.png) ### C. Finding Study spaces > When the cafe or student life button is called, the map searches through OpenStreetMap amenities with the cafe, university, or library tags. > Depending on the zoom level, it will cluster each amenity into groups, to show where there are a concentration of cafes and thus popular neighborhoods to study in. > The clustering changes dynamically as the map is panned or zoomed in. > ![alt text](/images/StudentLife.png) ### D. Dark Mode > Depending on the clock on the computer that it is loaded in, the map will automatically revert to 'dark mode' and draw the map with a different pallette according to the on-board time. The mode can also be switched with a button. > ![alt text](/images/DarkMode.png) ## How the map is drawn It divides up a cities' map into 3 distinct levels: Highways, Main Roads, and Residential & other small roads. It draws features with varying colors, calling the greenspaces & parks, bodies of water, buildings, and beaches of a city. **Note:** Partial Code shown due to project being submitted to a course to the University of Toronto and the copyright associated with it. Libraries from the University of Toronto simplified using GTK for graphics.