PMTiles – Bringing Diversity To Basemaps
In this episode, the discussion is about how to make base maps that are more flexible and problem specific. Currently, the base maps that are commonly used are commercial, one size fit all solutions that may not be a great fit for specific use cases. Protomaps is a project that makes it possible to build a single planet-scale tiled map, which does not need a server to put on the web. It can simply be hosted on cheaper options such as the Amazon S3 object storage.
About The Guest
Brandon Liu is the founder and creator of Protomaps. He came from a computer science background, and first encountered geospatial when making a biking app for his city. Since then, he learned about OSM, web mapping, and GIS. While working as a developer he recognized the gap between the data that we are accustomed to with Google or Apple maps and what an individual developer can accomplish. This led to the birth of Protomaps, a project that seeks to make it possible for more people to make custom base maps that best serves their needs.
What Is The Difference Between A Server System And Serverless System?
A server is a computer or program that manages the access of other computers (clients) to a centralized resource in a network. In the geospatial context, this could be a GeoServer which can be used to share GeoJSON files.
On the other hand, a serverless system uses a cloud-native development model that allows developers to run their applications without getting into the complexities of running servers. This simplifies the process for organizations that need to serve geospatial data, especially since most of them are not software companies, but could span from local government agencies to non-profit organizations.
The Scarcity of Basemaps
Traditionally, being able to create and also deploy a global base map has been the capability of very few multi-billion companies such as Google, Apple, Microsoft, and Facebook. Typically, base maps are only accessible to such a small group of organizations. Consequently, what a developer can do with base maps is limited by the data that is available from a map API such as Google. The lack of flexibility in using external APIs as well as the pricing (which may be unfavorable for some users) makes base maps scarce when seeking a problem-specific solution. The long-term goal for Protomaps is to enable people to combine their imagination with any data that is available to them whether that is from OpenStreetMap, open data from a Government portal, or their own data to build global scale tiled maps from that.
What Are PMTiles?
PMTiles is Protomaps’ tile format. It provides a way to create and host a tiled map without the complexity of servers. Developers can simply drop the tiled map in a storage bucket such as S3 and users can access, zoom, and pan around the map – all on a single S3 file.
As opposed to an X, Y, Z tiling system that could mean having hundreds of millions of individual tiles at higher zoom levels with slower uploads, PMTiles is a single file that contains all the data, which can be accessed dynamically through HTTP range requests.
What Is The Difference Between PMTiles And MBTiles?
There are many similarities between the concept of MBTiles and PMTiles. However, the main difference is that MBTiles is an approach built on SQLite database and also requires a server. Using MBTiles involves renting a server such as a Linux server and running a program that translates MBTiles requests into an HTTP request. On the other hand, PMTiles is an adaptation of the same overall concept but without the use of servers.
CDN (Content Delivery Network)
CDN helps to solve potential performance issues related to posting PMTiles on a storage system like S3, especially when many users are trying to access the map at one time. If there is a huge spike of traffic to your website, a CDN can scale the handling of public traffic without the need to rent more servers for that spike. Using a CDN also makes the user experience more efficient since it pulls data requested by the user from the closest geographical node.
How to Create PMTiles
PMTiles can be created using a tool called Tippecanoe, which was originally developed by Mapbox. Tippecanoe can convert GeoJSON datasets into PMTiles. If you have data in formats other than GeoJSON, the first step would be to convert it to GeoJSON before using Tippecanoe to create PMTiles. It is also possible to combine two or more PMTiles into a single PMTile using the Tile-join tool in Tippecanoe.
How Will A Future With PMTiles Look Like?
A future with PMTiles could mean a lot more diversity of the cartography done on the web. Having the capability to serve any kind of geospatial data instead of relying on a few SAS API providers could provide an environment that promotes creativity. As an example, the creation of a watercolor map by a company called Stamen showed the possibility of doing very creative cartography with OpenStreetMap data. And we could have more kinds of these creative projects.
How PMTiles Is Serving the Underserved
Today, most base maps are created for a commercial audience. Companies that make base maps offer a one-size-fits-all solution to serve a larger section of the audience. For instance, since most people drive cars, the commercial priority for many base map publishers is to make sure the map shows information that is relevant to car drivers. For specific use cases such as a developer trying to make an application that is not for car drivers, they are largely limited by the unavailability of the base maps that fits their purpose.
Thankfully, with the development of PMTiles, it is becoming possible to create more kinds of maps with different value systems. This is a relief for audiences such as nonprofits, journalists, and the public sector who are often underserved by external map APIs that come with vendor restrictions or unfavorable price points.