I love how early European maps are shaped by the decisions of the creator more than by data. Look at the way the different "layers" work together in this map from 1682 by Sebastian Münster, of Nordgau (present day Bavaria, Germany). Roads and labels and hills and illustrations overlap, connect, and warp to make room for each other.
I want to be able to achieve a similar sense of "awareness" between my data layers. After some experimentation, I stumbled upon a technique that gets me three things:
Features never clip when hitting data boundaries.
Features never overlap other features.
Fill areas composed of fields of symbols rather than flat fills or patterns.
The main way to accomplish these effects is to rely on font symbolizers. Mapnik, the image renderer behind Mapbox Studio Classic, is smarter about font placement than marker or polygon placement. I use a font composed of a single dot character, mapped to the letter 'b'. The basic CartoCSS for the hillshade layer looks like this:
When applied to a complicated polygon layer, like #hillshade from Mapbox terrain this already accomplishes the three points in the list. But sometimes this technique doesn't fill areas as densely as I'd like. To increase the density, I duplicate my layer by creating an attachment and apply an offset to double the number of markers that can be drawn from the data. Since my #hillshade layer is interacting with every other in complex manner and features are dropped almost at random, there pattern looks organic and natural:
The dot map is an abstract experiment, but with more complex fonts, style rules, and custom data, a lot more is possible. See Duncan's Mario Map for a little hint of what happens when some of these techniques are put to use.
Saman Bemel Benrud
is a designer at Mapbox. He is involved with the entire lifecycle of our products, from providing strategy and initial concept to consistently polishing the way our applications look and feel.
Follow @samanbb on Twitter