RSSAmplifier

Blog

Protomaps Blog

Recent content on Protomaps Blog

protomaps.comRSS feed ↗22 posts

Latest posts

New CLI feature: pmtiles merge

The pmtiles CLI now includes the highly requested merge command for combining multiple tilesets into a single archive. As an example use case: the Mapterhorn project distributes several archives: planet.pmtiles for the full planet terrain mosaic, from zoom levels 0 to 12. 6-20-28.pmtiles , 6-21-29.pmtiles , etc for zoom 13 and above in specific areas. These archives can contain up to zoom level…

Mapterhorn - Terrain for Web Mapping

The Protomaps project is the PMTiles format, its tooling, and a 120GB basemap vector cartographic tileset created from OpenStreetMap and other open data sources. PMTiles is not limited to storing vector data - it’s also used for raster data, like scans of historical paper maps. Mapping apps often don’t just need to show vectors of buildings, boundaries and places. Some apps need…

A Tour of the New pmtiles.io

pmtiles.io is an open source viewer for PMTiles tilesets. It’s a great way to inspect tilesets before you publish them on your site or app. It’s also a simple way to share GIS datasets without coding anything - just upload your PMTiles to any cloud storage, set up CORS, and deep link to the file on pmtiles.io using embedded URL parameters. pmtiles.io got a re-write! It now features:…

Covering the Planet with Compressed Bitmaps

This is the first post explaining how the pmtiles extract command works to slice a smaller tileset from a larger one. Protomaps Builds contains a daily planet tileset - if you want just Canada, or South America, you can pass pmtiles extract a GeoJSON to get only that region. The first step in extracting a slice is computing a tile covering for the target region. A covering is the set of all tiles…

What is a basemap, anyway?

The Protomaps project consists of: The open PMTiles format; The tools and ecosystem for creating and publishing PMTiles; A basemap PMTiles created from OpenStreetMap data and other open sources. Mapping apps need background context to help humans understand where things are . The base layer has water bodies, buildings and roads. You could use Google Maps and Apple maps for those, but Protomaps is…

Slicing OpenStreetMap Just Got Fresher

Developing software for OpenStreetMap data all starts with the PBF - it’s nodes, ways and relations in the raw, native OSM format. You can make tiled maps, PostGIS databases, or GeoJSON out of PBFs, but those conversions lose some tagging and metadata. With PBF, you get pure OpenStreetMap! The global OSM.org website provides a weekly copy of the entire planet as one ~80GB PBF. And…

PMTiles on More Platforms

The PMTiles format is a cloud-native way to visualize map data in the browser, directly from cloud storage. Browser decoding via the TypeScript implementation is ideal for most use cases, and accelerated deployment options run on AWS and Cloudflare . Here’s some highlights of new platforms and integrations in 2024: Style Editor Maputnik is a visual editor for MapLibre Style JSON that’s…

You Might Not Want PMTiles

PMTiles is the open archive format that underlies the Protomaps ecosystem. It’s a single file that enables deploying an entire world map as a static artifact, making mapping accessible to the widest audience of front-end developers and neogeographers . However, PMTiles isn’t the right solution for all mapping applications. PMTiles is made for web-based viewing of large, mostly static…

Protomaps receives NLnet open source grant

The Protomaps open source project is a recipient of a NLnet open source grant! This grant is part of the NGI (Next Generation Internet) initiative of the European Commission. Motivation The goals of the NGI Zero Core initiative are to develop alternatives and improvements to core internet hardware, software and protocols , in order to remove gatekeepers, choke points and surveillance capabilities…

Transitioning Protomaps from Open Core to Open Source

The Protomaps Project has gained several new repositories in the past year, including the serverless implementations for AWS and Cloudflare, and a new basemaps repository , which generates a full planet PMTiles archive from OpenStreetMap . A free daily build of the planet output is available on maps.protomaps.com/builds . These additional components complete the transition from an open core…

What is a clustered PMTiles archive?

One detail in the PMTiles version 3 specification is a boolean flag called clustered . Popular tools like the pmtiles CLI , tippecanoe and Planetiler always create clustered archives. PMTiles is an open specification in the public domain, so this post is to aid developers in implementing this optional feature. Clustered The term clustered comes from relational databases : the PostgreSQL manual…

Serverless Maps - Now Open Source

Accelerating Maps Last year I described Protomaps Mantle , a commercial solution for self hosting planet-scale maps without running any servers. It’s built on top of the open, cloud optimized PMTiles format, and adds the option of a content delivery network in front to accelerate map tiles to users anywhere in the world. The code components of Mantle are now open source, under the same…

What's new in PMTiles V3

PMTiles is a single-file archive format for map tiles , optimized for the cloud. Think about it like MBTiles , where the database can live on another computer or static storage like S3; or as a minimal alternative to Cloud Optimized GeoTIFFs for any tiled data - remote sensing readings, photographs, or vector GIS features. Why adopt PMTiles? Companies like Felt, a collaborative mapmaking app, are…

PMTiles version 3: Disk Layout and Compressed Directories

PMTiles is a single-file archive format for pyramids of tiled map data. The last post described the new Entry struct to compact repetitive data in-memory; the next step is to further shrink directories for storage on disk and transfer over the Internet. PMTiles is designed to substitute for APIs like this: https://example.s3-like-storage.com/tileset/{z}/{x}/{y}.pbf One storage pattern is to store…

PMTiles version 3: Hilbert Tile IDs and Run-Length Encoding

PMTiles is a single-file archive format for pyramids of tile data, like those used to power interactive maps. It’s designed to make storage and serving of planet-scale tiled maps simple using only affordable S3-like storage and HTTP Range Requests . The physical world depicted in maps is infinitely detailed , but also not random like white noise. By exploiting redundancy in the physical…

Serverless Maps using Lambda or Cloudflare Workers

Note: Mantle has been open-sourced and renamed, please see the latest blog post! In my last post , I described the downsides of the existing “pay-as-you-go” business model for maps. Organizations searching for a map solution weigh the benefits and drawbacks of build vs. buy . Buying a hosted SaaS — and letting someone else manage infrastructure for you — makes sense when DIY map infrastructure…

Rethinking the Free Tier for Maps

Protomaps is a new mapping system , and usually that implies a new map API - an HTTP service, hosted by a company somewhere Out There on the Web. Your typical interactive web map talks to an API using these conventions: The world is split into a pyramid of square tiles, with objects simplified to one of many pre-determined zoom levels. The browser fetches an image or other data tile as the user…

The Surprising Anatomy of a One-Man Map Tech Stack

Protomaps is a independent project to build a new map of the world. This scale of mission demands a wide range of novel frontend and backend components , like an open source spatial database , a serverless tile archive format , and a vector map renderer . There’s also a web application — the one you’re looking at now — with subsystems to process background tasks, ingest metrics and…

Dynamic Maps, Static Storage

Update: This post describes the internals of the PMTiles v2 format. Check out the post on PMTiles V3 for the latest! Serverless computing supposedly will let developers run sophisticated applications on the web without wrangling virtual machines or databases. New products like Lambda offer simpler deploys for code; emerging standards like WebAssembly let you host SQLite databases on GitHub pages…

A new way to make maps with OpenStreetMap

If you develop for the web, you’ve probably heard of OpenStreetMap , an open data alternative to Google Maps. Despite the wide name recognition of OSM, you may have questions like how do I make a web map with OSM data? and how can I host maps myself? There are popular guides on how to work with planet files, PostGIS databases, and run tileservers for the OSM “slippy map” style .…

Zonal Statistics for OpenStreetMap in the browser

A common user interaction in GIS applications is selecting a bounding box or polygon: Your application may then use this polygon to do things like: Render a high resolution, printable map image. Generate a report of the surface area of buildings. Calculate an isochrone map of distance to transit. Users of your service expect that any action will complete in a reasonable amount of time. It’s…

(untitled)