Open Sourced Tile Generators

Posted on Sep 6, 2023

First of all, by ’tile generator’ I mean a tool that transforms osm.pbf files into practical formats like mbtiles, pmtiles, or a database. It should not only convert files but also simplify their classification.

OpenMapTiles

OpenMapTiles (OMT), the old reliable. Battle-tested over the years, it’s a robust choice for generating your own tiles, renowned not just for data transformation but also its acclaimed schema. OMT is versatile, catering to various use cases:

  • Want data to be in a database? Covered ✅
  • Want data to be in mbtiles? Covered ✅
  • Want to modify layers in depth? Covered ✅
  • Want to get the whole planer? Covered ✅

…And the feature list goes on! OMT is undeniably feature-rich, but it’s not without its drawbacks. It can be considered a ‘heavy’ tool due to its extensive features, which might be overkill if you only need a few.

It is also a bit of a nightmare for debugging, OMT is amalgamation of many tools written in SQL, Go, C++ or Python glued with a bit of Bash and wrapped in Docker. This complexity poses challenges in debugging and deploying on Kubernetes, something I’ve personally experienced.

Click here for OpenMapTiles GitHub page.

TileMaker

The (relatively) new entrant. TileMaker’s charm lies in its simplicity—no database involvement means fewer infrastructure costs. It keeps things straightforward: feed it an osm.pbf file, and it spits out an mbtiles file. Plus, TileMaker can arrange data with the widely used OpenMapTiles schema. It has multiple features for dropping unnecessary data and simplifying geometries and is relatively fast for medium sized areas. However, the catch with TileMaker is its struggle with performance for very large areas or the entire world. This isn’t subjective; it’s an ongoing issue documented on their GitHub page. Nonetheless, achieving planet-level tiles is possible, but demands a high-performance machine and a spare 16+ hours.

Click here for TileMaker GitHub page.

Shortbread

Our final contender is Shortbread, a fresh initiative from the Geofabrik team. Its promise lies in an intriguing schema, likely shaped by Geofabrik’s extensive experience. They propose an alternative to the OMT schema, as detailed here. However, the catch with Shortbread is that, in practice, it relies on TileMaker under the hood for data processing. This introduces a similar to the vanilla TileMaker regarding performance.

Click here for its official website.

Missed contenders

  • PlanetTiler: While it appears promising, I lack firsthand experience with it. My primary concern stems from its limitation in schema customization—it seems more geared towards predefined data classification recipes.
  • osm2pgsql, osmium & tippecanoe: These are robust CLI tools well-regarded in the GIS community. However, I excluded them due to their inability to facilitate custom schema creation.

To wrap up, I believe the open-sourced GIS community could benefit from a more simple yet versatile CLI tool. I personally would love to see a Rust CLI that mixes the simplicity of TileMaker and the features of OpenMapTiles - particularly its highly customisable schema.

Enjoy!