# protomaps/pmtiles

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/protomaps-pmtiles).**

2,662 stars · 169 forks · TypeScript · other

## Links

- GitHub: https://github.com/protomaps/PMTiles
- Homepage: https://protomaps.com/docs/pmtiles/
- awesome-repositories: https://awesome-repositories.com/repository/protomaps-pmtiles.md

## Topics

`pmtiles` `serverless`

## Description

PMTiles is a cloud-native geospatial data format and a set of tools for creating cloud-optimized map tile archives. It organizes map tile pyramids into a single-file archive, allowing map data to be stored and retrieved from remote buckets without a dedicated backend database.

The project provides a map tile format converter to transform various data sources into this unified archive and a map tile server proxy that serves these archives to display systems using standard protocols. It enables the use of HTTP byte-range requests and metadata-driven indexing to retrieve specific tiles without downloading the entire file.

The system covers map data archiving, static map tile distribution, and offline map data storage. It includes command-line tools for uploading archives to cloud storage buckets.

## Tags

### Repository Format

- [Cloud-Native Geospatial Formats](https://awesome-repositories.com/f/repository-format/cloud-native-geospatial-formats.md) — Implements a storage standard that allows map data to be retrieved from remote buckets without a backend database.

### Data & Databases

- [Byte-Range Optimized Storage](https://awesome-repositories.com/f/data-databases/disk-based-tile-storage/byte-range-optimized-storage.md) — Archives map tile pyramids into a single file optimized for cloud storage access via HTTP byte-range requests. ([source](http://protomaps.com/blog/dynamic-maps-static-storage))
- [Tile Pyramids](https://awesome-repositories.com/f/data-databases/flat-file-storage/tile-pyramids.md) — Organizes map data as a linear sequence of tiles across zoom levels for efficient random access.
- [Single-File Persistence](https://awesome-repositories.com/f/data-databases/key-value-stores/single-file-persistence.md) — Packages a complete map tile pyramid into a single portable binary file.
- [Byte-Range Indexing](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/indexing-architectures/byte-range-indexing.md) — Uses a fixed-size header and directory to map tile coordinates to exact byte offsets within the archive.
- [Offline Map Data Managers](https://awesome-repositories.com/f/data-databases/offline-data-management/offline-map-data-managers.md) — Organizes map tile pyramids into a single portable file for use in offline environments.
- [Format Conversions](https://awesome-repositories.com/f/data-databases/structured-data-schemas/format-conversions.md) — Transforms various tile data sources into a unified archive format for easier deployment.

### DevOps & Infrastructure

- [Map Tile Hosting](https://awesome-repositories.com/f/devops-infrastructure/map-tile-hosting.md) — Serves map tiles directly from cloud storage using a single archive file instead of a database server.
- [Map Tile Archive Converters](https://awesome-repositories.com/f/devops-infrastructure/map-tile-archive-converters.md) — Transforms various tiled map data formats into a unified archive for simplified distribution.
- [Static Hosting Utilities](https://awesome-repositories.com/f/devops-infrastructure/static-hosting-utilities.md) — Enables map data to be hosted on read-only cloud object storage without requiring an application server.

### Graphics & Multimedia

- [Map Tile Serving](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/mapping-libraries/map-tile-serving.md) — Packages tiled map data into a single file for hosting on cloud storage without a dedicated server. ([source](https://cdn.jsdelivr.net/gh/protomaps/pmtiles@main/README.md))
- [Vector Tile Serving](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/tile-map-renderers/vector-tile-serving.md) — Serves tiles from a single archive file to map display systems using standard tile server protocols.
- [Vector Tile Distribution](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/tile-map-renderers/vector-tile-serving/vector-tile-distribution.md) — Packages map data into a single file for easy sharing and hosting via standard HTTP range requests.
- [Map Tile Server Proxies](https://awesome-repositories.com/f/graphics-multimedia/map-tile-server-proxies.md) — Provides a proxy that serves map tiles from a single archive via standard Z/X/Y tile server interfaces. ([source](http://protomaps.com/blog/dynamic-maps-static-storage))
- [Vector Tile Conversion](https://awesome-repositories.com/f/graphics-multimedia/vector-tile-conversion.md) — Transforms various tile data formats into a unified archive file to simplify distribution. ([source](https://cdn.jsdelivr.net/gh/protomaps/pmtiles@main/README.md))

### Networking & Communication

- [Byte-Range Requesting](https://awesome-repositories.com/f/networking-communication/byte-range-requesting.md) — Implements HTTP byte-range requests to retrieve specific map tiles without downloading the entire archive.

### Scientific & Mathematical Computing

- [Geospatial Tile Coordinate Resolution](https://awesome-repositories.com/f/scientific-mathematical-computing/geospatial-tile-coordinate-resolution.md) — Calculates required byte ranges for specific map coordinates and zoom levels on the client side.
