Centrality

Centrality is a concept that is, well, central to a lot of internet companies (ahem, Google), but hasn’t really made the prime time in the architectural community. Urban planners and architects have started to come up with various algorithms to measure this property, whether it’s to determine a “walk score” or “space syntax”. And then there was the mid century attempt to scientifically optimize walking distance in architecture, which I have written about before. As Sean Keller has pointed out in his various articles and essays about the early days of computation in architecture, eventually the results of this research into walking distance were rendered obsolete by new technologies such as intercoms and email. This is not to say that location is no longer important, however.

While the methods above might seem fairly complex, there is a very useful and easy to calculate type of centrality that requires nothing more than a familiarity with Google Maps. If you have a list of street addresses and want to figure out which is the most central to a certain domain, a simple metric called “closeness centrality” is all that is required. To figure out this value, you measure the sum total of the distances from a location to a list of target distances (for relative internal centrality, this can be to the other addresses in the initial list). The location with the smallest total is the closest and therefore the most central. I have written a bit of JavaScript that does all of the heavy lifting for you: prepares the addresses, gets the values, calculates the totals and serves up some charts and maps to illustrate the results.
Image
This version uses travel time instead of distance, as proximity to freeways can be a major factor. As I was initially using it to find relative centrality within a cities’ boundaries, the list of target addresses were just the centers of each zip code, which also controls the results somewhat for relative density of population. I apologize for the messy code but this was my first attempt at anything asynchronous.

Here are the file locations:

HTML
JavaScript

And here are some previous versions, that use relative centrality within a list of locations, using distance as well as travel time:

Distance HTML
Distance JavaScript
Travel time HTML
Travel time JavaScript

Some disclaimers: first of all, the code is not well organized, commented, or constructed, sorry. It’s also a deprecated version of the Google Maps API (v2) as this version had some methods that were useful. If you are going to use this a lot or write your own implementation, please PLEASE get your own Gmaps API key. And I would be remiss if I didn’t mention that according to Google’s terms of service you need to display a map whenever you query the API.

This tool has a few obvious uses. One is what was mentioned above– ranking addresses by their relative centrality to one another. It’s also good, however, for comparing entire groups of addresses to one another– simply compare the grand totals. You can also use it to figure out a good “dividing line” when making zones of control for different areas (say, delivery areas for a chain of restaurants). Have fun!

Centrality