caffeinemaps projectscontact
Over 50,000 fast food restaurants on a Google Map. Including McDonald's, Wendy's, Burger King, Jack in the Box, Pizza Hut, Taco Bell, KFC, Carl's Jr., Hardee's, and In-N-Out.

I started this project in January, 2005 because I was trying to imagine the geographic distribution of fast food locations in the United States. Phil Dhingra and I spent an afternoon hacking something together. The address data was scraped off of Jack in the Box's website and geocoded by scraping from Microsoft's Terraserver.

First result: a Matlab plot showing all Jack in the Box locations in California.

2,057 Jack in the Box locations in the United States. More static maps.

I wrote scrapers for other major fast food chains and produced a list of 50,000 locations in the US. Using the site, people can go to any location in the US and see the major fast food restaurants there. My intention wasn't to make it easier for people to find fast food, nor was it to criticize the ubiquity of fast food. I'm interested in the visualization, the graphical portrayal of information. These graphics convey something that is true about the US. (More precisely, the graphics portray something that was approximately true in August 2007, which is when most of the data was last harvested.)

This map shows over a hundred fast food locations in New York City.

As I built the site, I found an interesting use-case for it. By going to an area I'm familiar with, I'm able to use the locations of its fast food restaurants to establish context with the map. Maps are a basic form of visualization, intended to portray the lay of the land. But it can be difficult to look at a map, a simplified overhead rendering, and connect it to the scenes one has observed in real life.

Pictured about is part of El Camino Real, a highway that connects San Francisco to Silicon Valley. The numbered restaurants are locations that played some role in my life in the Bay Area.

Some Technical Information

Scraping refers to a process by which text is pulled out of the code of a website and then reformatted to produce structured information. Modern websites, for the most part, are generated dynamically. Dynamic pages are not fixed documents, but are generated on-the-fly according to the contents of databases and other information. For simplicity, one can think of a database as a highly versatile spreadsheet. Jack in the Box has a database that contains all the addresses of their restaurants and they use this database to produce search results for their restaurant locater page. Scraping is a means of recovering a database which is otherwise hidden underneath a website.

The Google Maps API is built in Javascript, as is most of Fast Food Maps. The exception is the database of store locations. This is stored remotely on a server, so it can be queried dynamically, depending on the current location of the map. Many web browsers cannot handle displaying more than a few hundred markers on a Google Map before getting bogged down. Fast Food Maps overcomes this limitation by aggregating points depending on the zoom level. When zoomed out, markers are shown that summarize the largest cities. When the map is zoomed in enough to reveal individual restaurants, only data for the current screen is drawn. As a user drags around on the Google Map, markers are created automatically to display all of the location data seamlessly, but without overloading the web browser.

From the original view of the US map, it may appear the the site only contains data about major cities. But if the user zooms in enough, eventually all other cities will appear.