go-cart.io: a web application for generating contiguous cartograms

Abstract. Cartograms are maps in which the areas of regions (e.g. states, provinces) are rescaled to be proportional to statistical data (e.g. population size, gross domestic product). Cartograms are called “contiguous” if they maintain the topology of the conventional map (i.e. regions are displayed as neighbours on the cartogram if and only if they are geographic neighbours) [1]. An example of a contiguous cartogram, showing the 48 conterminous states of the USA with an area proportional to their population, is shown on the right of Figure 1. Such maps are an invaluable addition to a professional geographer’s toolbox. However, producing contiguous cartograms should not be the privilege of only a handful of experts in cartography. Journalists or bloggers, for example, may also benefit from a cartogram as an intriguing illustration of their own data. Similarly, high school students may enrich a term paper with a cartogram that can summarize data more effectively than raw numeric tables.Until now, the creation of contiguous cartograms has been far from user-friendly, requiring computer skills that even experts in data visualization typically do not possess. In the past, publications that introduced new cartogram algorithms rarely included computer code. Some authors of more recent publications have posted their code online [1,2], but their software usually requires technical knowledge (e.g. about shell scripting, compiling, GIS) that pose insurmountable obstacles for most users. To remove these hurdles, we have recently developed the web application go-cart.io [3] with an interface that is easy to use, even for non-experts.Over the past 15 years, several other applets have been posted on the worldwide web, but they either offer only a limited number of precomputed cartograms [4,5] or are no longer actively maintained [5–8]. In particular, the shift away from Java applets has made it challenging to run some of these legacy applications. This status quo has been against the current trend towards “citizen cartography”, mainly driven by online tools that enable even untrained users to produce maps from their own data. It has been shown that most users perceive contiguous cartograms, though potentially challenging to read, as an effective method to display data [9]. It is therefore timely to develop a new web interface that makes it easier to generate cartograms.While previous cartogram generators required users to install software (e.g. Java) on their computer, go-cart.io is based on JavaScript that can be run in any contemporary web browser without additional downloads. We decided to simplify the data input as much as possible. We have curated a “library” of topologies so that users do not need GIS expertise to create geospatial vector data. The entries in this library are currently limited to only a few countries split into administrative divisions (e.g. USA by state, China by province), but we will expand the selection over the coming months. We may also, at a later stage of the project, allow users to upload their own map data. Users can select a country from a dropdown menu (highlighted in Figure 1). Afterwards users specify the desired areas and colours for each region on the cartogram either by editing a spreadsheet in the browser or by uploading a CSV file.After data are transmitted, a remote server calculates the cartogram transformation with the recently developed fast flow-based algorithm [1]. Because the calculation is entirely server-side, we eliminate any dependence on the client’s hardware. We tested the application with various countries and input statistics. For typical input, the calculation finishes within 10 to 15 seconds. If the calculation needs substantially longer, the application displays a bar chart instead of a cartogram as a fallback. The cartogram is displayed in the browser window side by side with the conventional (i.e. equal-area) map (Figure 1). The user can explore both maps with various interactive features implemented using the D3.js library [10]:Linked brushing: when the mouse hovers over a region on the equal-area map, the corresponding region is highlighted on the cartogram and vice versa.Infotip: a text box containing the name and statistical data of the highlighted region appears above the map (Figure 1).Map switching: users can smoothly morph the image from equal-area map to cartogram and vice versa by clicking on the cartogram selector (Figure 1).Users can save all generated equal-area maps and cartograms as SVG vector image files and directly share them on social media (Figure 1). We are currently conducting evaluations to measure how effective the application is in allowing users to easily generate and analyse their own cartograms. Our initial results suggest that these features are well received by users. We believe that, with a user-friendly interface, contiguous cartograms have the potential to gain more popularity as an attractive and engaging method to visualize geographic data.