LA Grub Grabber (LAGG) is Live

Project Website

Eminent Domain Final Presentation


Finding a restaurant in Los Angeles (LA) isn’t a challenge, but finding a good one that is accessible by bus or car can be. The LA Grub Grabber (LAGG) tries to the fill the void by providing you with the tools to find a great place to chow down. 

Click on the map and a 500 meter radius of that point shows all the restaurants contained within it by accessing the Citysearch API. Additionally all of the bus stops within the 500 mile radius are located and their associated bus lines are displayed. Each bus stop (on the lines that fall within the 500 meter radius of the original point) within a 30-minute time period (factoring in walking time to the station and the bus schedule) is displayed. Each one of those bus stops has another 500 meter radius displaying all of the restaurants within it. This functionality allows users to see what restaurants are along their chosen bus route.

The number of restaurants and restaurant density by zip code allows users to choose bus routes or restaurant locations with an abundance of restaurants, should they choose to do so.

If users, or their friends, prefer to drive, we show a layer of all City of LA parking lots.

Users can also insert their favorite restaurants by using the Google Form and geocoding it.


(1) Google Form

(2) Clickable Layers

(3) Click on the map and get restaurants and bus routes


Bus Network Algorithm:

•Transformed  Metro GTFS data into the table structures we needed and
created Fusion Tables services to provide trip planning functionality.
•We use lat/lon to look up stops within max walk distance
•Get departure times and trip IDs for nearby stops within time threshold
•Find arrival times and stop IDs within the time threshold for the
associated trip IDs
•This gives us a set of stops that are reachable within the max time threshold, with a variable walk distance around each up to the max time, or max walk distance (whichever is lower).  We add a marker for each stop.

Restaurant Finding Algorithm:

•Easy way: Do a radius search for each stop.  But this is very slow.
•So we compute a bounding box for the stops and do a single category/box search on CityGrid, giving us a large result set.
•We then iterate through each CityGrid result and see whether it is within the max walk radius of any of the stops.  If so we find the shortest path (walk + bus) to the location and then check whether the total trip time is within the threshold.
•If the location is within the max trip time threshold and max walk distance, we add it to the map.


Restaurant Density by Zip Code / Number of Restaurants

City of LA Parking Lots


Ideally we would have been able to use the Metro API, but this caused us a lot problems. We would also have liked to perform some basic statistics using JStat (or another program), since this would have provided an interesting analytical component.



David Benoff wrote the tricky code and had great UI ideas…David Peterson grabbed the data, created layers, and learned some programming tricks from DB.

Leave a Reply