An Infinite Map

The Protomaps Basemap + OpenStreetMap

Brandon Liu - Protomaps LLC

OpenStreetMap is an infinite map
in two important ways.

Infinite detail - open ended tagging scheme

Infinite detail - open ended tagging scheme

Infinite reproduction - ODbL license

Infinite reproduction - Mirroring

❀️ OSM: infinite flexibility + reproduction

πŸ’” but that's not true of tiles

Tiled basemap cartographic products: A primary use case for OSM.

Source: Azavea Blog

OSM Carto tileset is not infinitely usable or reproducible.

"OpenStreetMap data is free for everyone to use. Our tile servers are not."- OSMF Tile Usage Policy

Typical tiled basemaps

Delivered as commercial API

No scraping, metered usage

Typical tiled basemaps

Fixed one-size-fits-all tagging scheme

Might not have the data you want to show

The Protomaps basemap

So how do I use it?

✨ a free single file download on protomaps.com/docs

basemap.pmtiles

  • ~100 GB
  • ODbL Produced Work license (Β© OpenStreetMap)
  • Mix of other public domain datasets (Natural Earth)
  • Can be served directly to MapLibre, Leaflet without tileserver

Open source build

  • Based on onthegomap/planetiler core library
  • Direct .pmtiles output and z15 added to Planetiler
  • Focus on generation speed: ~3-4 hours on modest desktop

How to run

git clone github.com/protomaps/basemaps
cd tiles/
mvn clean package
java -jar target/*-with-deps.jar --download --area=us/virginia

Download minutely regional tileset at protomaps.com/docs/downloads

Compared to: Mapbox, OpenMapTiles

  • βœ… Primary way to use map is make-your-own-tileset and enable fast customization
  • "free-forever" edge-cached tile API at protomaps.com, supported by GitHub Sponsors
  • ODbL Produced Work license

Compared to: Tilezen

  • βœ… Converging on Tilezen design for cartography
  • βœ… Mixing in other data sources (Natural Earth, Overture, Daylight, Wikidata, QRank...)
  • βœ… Preserve permissive license

Compared to: πŸ—ΊοΈ MapLibre

  • βœ… Protomaps basemap primary target: MapLibre GL
  • Leaflet renderer (protomaps.js) in maintenance mode
  • Experimental support for OpenLayers

Compared to: 🌎 Planetiler

  • Implementation of specific layers + tags scheme on top of Planetiler core
  • Upstream stable, general-purpose cartographic primitives and utilities (e.g. pmtiles support)

What's the status?

  • βœ… tiles and styles in a single repo: github.com/protomaps/basemaps
  • ⏸️ A fairly ugly map at the moment
  • πŸŒ… Roadmap: focus on visual and cartographic design

Road networks, offramps and cloverleafs

Compare view

Powered by github.com/stamen/maperture

How to customize?

  • Right now: do it in Java
  • Eventually: config file for customizing basemap
  • Example custom layers: golfing, skiing, wastebaskets

PMTiles ecosystem

GitHub Sponsors: Thank you!

Supporting open source development and hosted API

github.com/sponsors/protomaps

Thanks!

Find me at github.com/protomaps