Planetiler
planetiler | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Author: | onthegomap/planetiler/graphs/contributors GitHub | |||||||||||||||||||||||||||||||||||
License: | Apache License 2.0 | |||||||||||||||||||||||||||||||||||
Platforms: | Linux, macOS, and Windows | |||||||||||||||||||||||||||||||||||
Language: | English | |||||||||||||||||||||||||||||||||||
Website: | https://onthegomap.github.io/planetiler-demo | |||||||||||||||||||||||||||||||||||
Source code: | onthegomap/planetiler GitHub | |||||||||||||||||||||||||||||||||||
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/PLANET.md GitHub for more details.
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 |