From OpenStreetMap Wiki
Jump to navigation Jump to search
Author: onthegomap/planetiler/graphs/contributors
License: Apache 2.0
Platforms: Linux, macOS, and Windows
Language: English
Source code: onthegomap/planetiler
Programming language: Java

Flexible tool to build planet-scale vector tilesets from OpenStreetMap data in a few hours

Planetiler (pla·nuh·tai·lr, formerly named "Flatmap") is a tool that generates Mapbox Vector Tiles from geographic data sources like OpenStreetMap .osm.pbf files, Natural Earth, or Shapefiles. Planetiler aims to be fast and memory-efficient so that you can build a map of the world in a few hours on a single machine without any external tools or database.

Planetiler works by mapping input elements to rendered tile features according to a configurable profile, writing the features to disk, then sorting by tile ID to group into tiles. The built-in "basemap" profile is compatible with the OpenMapTiles schema, or you can define your own custom schema by implementing a new profile in Java. See example output from the basemap profile here.

To generate an MBTiles file containing vector tiles for the planet, you need:

  • about 1.5x as much RAM as the input .osm.pbf file (to store relation membership and node locations)
  • 5-10x as much disk space as the input .osm.pbf file (to store rendered features before grouping into tiles)

The entire process takes about 40 CPU hours (as of October 2021 when planet.osm.pbf was 65GB), but is parallelizable so completes in ~3 hours with 16 cores or under an hour with 64 cores. See onthegomap/planetiler/blob/main/ for more details.

Example Runtimes
Input Schema Hardware Time Output size
planet.osm.pbf (Oct 2021, 65GB) Basemap DigitalOcean 16cpu 128GB 3h9m 99GB
planet.osm.pbf (Oct 2021, 65GB) Basemap (without z13 building merge) AWS c5ad.16xlarge (64cpu/128GB) 59m 97GB
germany.osm.pbf (Dec 2021, 3.5GB) Basemap M1 MacBook Pro (10cpu/32GB) 9m 2.9GB
australia.osm.pbf (Dec 2021, 544MB) Basemap M1 MacBook Pro (10cpu/32GB) 1m47s 2.7GB