Protomaps Blog

What is a basemap, anyway?

The Protomaps project consists of:

Mapping apps need background context to help humans understand where things are. The base layer has water bodies, buildings and roads. You could use Google Maps and Apple maps for those, but Protomaps is open source!

Two key aspects of a basemap are labeling and generalization. Text labels help users identify well-known places. Generalization is the choice of features that appear at zoomed-out overview levels. It’s what makes a basemap different from merely a data dump of OpenStreetMap. Some data necessary for generalization will never be part of OSM, such as importance rankings from Natural Earth.

Basemap Origins

The Protomaps basemap is inspired by a long legacy of web mapping projects.

Legendary San Francisco design studio Stamen created OSM basemaps as part of a Knight News Challenge grant. These basemaps were built with OpenStreetMap, PostGIS and Mapnik.

The Toner basemap was especially suited as a background to data visualization overlays, and was a popular style that strayed from the “road atlas” look of early web maps.

The Watercolor map took the raster slippy map rendering stack to its limit, and pushed the boundaries of what was recognizable as a basemap, while using familiar OpenStreetMap data.

The original code for rendering Toner is available on GitHub at the toner-carto and watercolor repositories.

Mapzen

The Protomaps basemap is primarily derived from the Tilezen and Tangram projects that were developed at Mapzen from 2013 to 2018.

The Bubble Wrap style was a general-purpose basemap that included icons for points of interest.

Refill was not a single map, but a family of mono or duo-chrome maps in the vein of Toner that could be customized for different label densities:

You can read more about the cartography behind Tilezen on Mapzen’s former blog:

Moving Web Maps Forward

One vital aspect of the Tilezen project is its open license - it’s available under permissive FOSS licenses, and is now a Linux Foundation project. This provides a solid foundation to build a basemap, instead of having to start from scratch.

Key parts of Tilezen that are re-used or replaced in Protomaps are:

Protomaps Basemap

The Protomaps basemap also adopts MapLibre as its frontend rendering library, instead of the Mapzen Tangram project, because of its features like map rotation and globe mode, and its ecosystem of plugins.

For MapLibre we’ve had to design an entire new set of styles for the Tilezen tileset. The maps are designed in collaboration with Geraldine Sarmiento - you can check out her portfolio, including her work on the Stamen and Mapzen styles, at her portfolio site.

Rather than needing to maintain and update many independent styles, the Protomaps basemap is one parameterized style in TypeScript that can be customized using simple palette objects - think of it like a color scheme or paint job, applied to the same map “skeleton.” This lets different visual styles share common logic for the ordering and relative prominence of features.

The maps include:

  • A default light flavor. It includes icons originally developed for Mapzen’s Bubble Wrap style.
  • A Dark mode variant of the light flavor.
  • Data visualization flavors, inspired by Refill. Designed for overlaying data or even “sandwiching” data.

Project Status

The implementation of the above map styles is still a work in progress, but sufficient for a wide range of mapping use cases like data visualization! You can follow along at:

This work is supported by an NLNet Foundation NGI0 grant.