My shortest paths app for Vassar College

I’ve finished the first online version of my application which finds shortest walking paths on the Vassar campus. It uses Dijkstra and the Google Maps Javascript API to find and plot the shortest route between dorms, academic buildings, and student centers. I’m hoping for some feedback from online testing before I submit the final version as part of my senior research project. I’ve solved a lot of arguments about quickest ways to class already!

Senior research project: campus map browser app

Last month I alluded to my research project for this semester: making a browser app to provide walking directions for my campus. While driving directions are readily available, our existing campus maps are a little hazy on the walking instructions between buildings. If I can finish the app and get it on the college’s website, not only will it keep prospies and freshmen from getting lost, but it will settle a lot of arguments about the quickest way between buildings.

So far it can find the shortest distance between two points on the quad. My data consists of lat/long coordinates pulled from Google that represent intersections of sidewalks. Javascript calls the Google Maps API to get the shortest distance between those two points and runs Dijkstra’s algorithm, short-circuiting when it finds the goal. Then it gives me an array of points from start to finish, which the API uses to draw a line on the map.

There’s still plenty to do. In the next couple weeks, I need to figure out how to pull the coordinate data for the rest of the campus. If I can’t find a way to automate that, I’ll have to do it by hand, which is daunting. Even then, I know I’ll have to manually collect the data on which graph nodes are connected, because while I can plot down points on a custom map, I can’t find a way to automate connecting them (for that to happen, Google would have to be able to see where the sidewalks are on the map).

My long term goal is to have a package I can give to other campuses so they can replicate my project, but first I have to get my version set up. More updates to come!