The Next TileMill: Making a Simpler Map-Building Workflow


3 min read

Since we released the alpha version of TileMill — a toolkit for rendering map tiles on the Amazon EC2 cloud — back in October, we’ve received a lot of feedback and ideas from its early adopters. In this post, I wanted to share with you where we see TileMill headed and our plans for TileMill 2.0.

The next version of TileMill will aim to create a simpler map-building workflow. With TileMill, we want to build a collection of open source tools with solid documentation and wrappers that make the best-practice methods of making maps obvious and easy for beginners. At its core, the maps are rendered by Mapnik, and helped along the way by Cascadenik and TileLite. We want to improve these tools and the code that ties them together so that rendering a map is as easy as a single command or a quick upload.

TileMill 1.0 let us start to think about some of the main components of this kind of strategy. It encapsulated tile-rendering into a single server and tested out a command-line interface to map rendering. We also identified bottlenecks like S3 uploading and addressed them by writing multiprocessing code to multiply performance. The key problems we’ve heard about are the lack of information on the status of uploads and TileMill’s relatively high barrier to entry.

In the next version of TileMill, we want to address these problems and rethink map rendering so it becomes a task that HTML/CSS-fluent people can quickly grasp. We’ll start this process by building a more focused, flexible programmatic interface that will work for complex maps like those designed by AJ. The command-line tools will be significantly easier to install and use, and error-checking and progress monitoring will be integrated on every level.

In the second stage, we’ll create a simple web interface to solve the problem of notification and debugging of the tile generation process. The goal is to have ‘progress bars for everything’ and informative error messages. We’ll also focus on creating comprehensive, user-friendly documentation so that the path from map newbie to map expert is less rocky and a lot quicker.

Architecturally we want to build TileMill 2.0 in a way that benefits its underlying open source tools (Mapnik, Cascadenik, Tilelite, and others) and makes it usable for people who opt out of using Amazon’s web services. Improvements that can be located within Mapnik itself will be made there so all users can benefit, and unlike in version 1.0, 2.0 will be built without any real dependencies on the Amazon infrastructure. It will instead be a light set of tools with interaction built primarily via REST interfaces, which means that the TileMill stack will also work on a VPS server.

We’re excited to start this work and can’t wait to share our results.

What we're doing.