Why We Need Another Mapping Framework

Over the last two years, cartography has drawn my attention from time to time. In 2009 I started my work in the field by porting the PROJ.4 library to ActionScript. My first notable interactive map application was a world map widget for the Piwik Analytics project, which is in use until today. It was born from the need to have a simple world map that is lightweight, easy to use and completely independent from external map services like Google Maps.

A lot of things happened in the field since then and some cool mapping frameworks have been released. Google Maps keeps innovating and gives people lots of reasons to use their service, even on a commercial basis. But still one thing seems to never change: the Spherical Mercator projection.

Why should we care about map projections at all

So why should we care about map projections at all? To answer that question, I kind of like to point to an analogy to photography. As a photographer, you probably would never consider working with just one camera and a single ancient and highly distorted lens. Of course, it might be fun to work with that lens, but once you face its limits you get odd of it. Instead, you carry your big bag of equipment with you, knowing that for some shots you will need the tele, while for others you need a wide angle. Some lenses work good at night, others give you the best results in sunlight etc, etc. Good photo journalists know exactly how to use their equipment in order to put their objectives into the exact perspective and context they need to underline their stories.

In contrast, data journalists are nowadays limited to just one projection. To illustrate the journalistic dimension of this limitation I will now show you three maps of the same geographic area. The first uses the well-known Mercator projection:

 

The Mercator map looks neutral, clean and… boring. In fact, the projection shows the earth as an cylinder shot from an infinite distance. You really can’t distort a view on our planet much more. Note that the area of Spain looks as big as (and maybe even slightly smaller than) Germany. In contrast, the next map uses an equal area projection.

 

The curved grid lines indicate that we’re living on a spherical planet, but still we are looking at it from an infinite distance. Looking at the equal-area projection, one would now say that Spain is slightly bigger than Germany (in fact it is 141% the size of Germany). You can easily imagine scenarios where true areas are really important, say if you want to show the extend of devastation of the latest environmental disaster or something..

And finally, here’s the last shot which shows the same geography using the tilted satellite projection:

 

Now the projection looks more like a photography taken from a point more close to the surface (in fact, it was taken 4464 km above Morocco). It immediately places the viewer into the cartography and inevitably forces us to look to a specific direction. Using satellite projections gives us a completely different sense of scale and can shift the context of map-driven stories dramatically.
Now tell me, which data journalist would want to do without that?

Hello Kartograph

Since I know that it’s kind of unfair to propose new awesome features while knowing that almost nobody is able to use them, I decided to turn my ideas into code. For 4 months or so I had been working on a new mapping framework which I finally named Kartograph.

Here’s a bit of the rationale behind Kartograph. Most notably Kartograph..

  • ..allows to select and fine-tune the map projection, which is like the fundamental equipment for telling stories with maps
  • ..ships with the tools needed to easily convert open geo data (shapefiles, kml, geojson) into interactive data-driven maps
  • ..gives its users complete control about what to include in their maps and what not to include.
  • ..puts a focus on reliable data visualization techniques.
  • ..does not rely on hosted (and costly) mapping services like Google Maps or MapBox

Of course, there is a lot of work left, and I’m currently looking for some way that allows me to continue the work on Kartograph for another two or three months. In the meantime I also plan to release a new version of the world map widget for the Piwik dashboard, which was kind of the initial reason for starting to work on the library.

Now, I’m really curious for your feedback about Kartograph. Do you think it is worth the effort? Do you know of any existing library that can do the same? What are the killer features you would like to see in a modern vector mapping framework?