Cloud-Native Geospatial: PMTiles, COG, and the Death of the Tile Server
The geospatial industry is undergoing a serverless revolution. Cloud-optimized formats like PMTiles and COG are eliminating infrastructure complexity while dramatically reducing costs.
For years, serving geospatial data meant running tile servers—PostgreSQL with PostGIS, GeoServer or MapServer instances, load balancers, caches. The infrastructure was complex, expensive to maintain, and scaled poorly. Then cloud-optimized formats emerged, and everything changed. Today, you can serve a global-scale map from a single file on S3 with zero backend infrastructure.
The Problem with Traditional Tile Serving
Traditional tile servers accept incoming requests, query a database, generate tiles dynamically, and serve them to clients. This architecture has served us well but comes with significant operational burden: you need to manage database connections, handle caching strategies, scale horizontally during traffic spikes, and pay for compute even when no one is making requests.
For government agencies and research institutions with limited DevOps capacity, this overhead often means geospatial data remains locked in desktop GIS tools rather than shared on the web.
Cloud Optimized GeoTIFF (COG): The Raster Revolution
Cloud Optimized GeoTIFF was the first major breakthrough. A COG is a regular GeoTIFF with a specific internal structure: internal tiling and overviews (pyramids). This structure enables HTTP Range Requests—clients can fetch just the portion of the image they need without downloading the entire file.
COG Key Features
Internal tiling
Divides the image into 256x256 or 512x512 pixel blocks
Overviews
Pre-computed lower-resolution versions for fast 'astronaut's eye view'
Range Request support
Fetch only needed bytes over HTTP
Backwards compatible
Still a valid GeoTIFF, works with existing tools
Compression
Supports LZW, DEFLATE, ZSTD, and JPEG for reduced storage
The impact is dramatic. Downloading an overview of a multi-gigabyte satellite scene takes less than a second. No tile server required—just an S3 bucket, CloudFront, and a client library like Titiler or rio-cogeo.
PMTiles: The Vector Tile Revolution
PMTiles solves the same problem for vector data. Developed by Brandon Liu at Protomaps, it packages all vector tiles for a dataset into a single file that can be served from static storage—S3, R2, Azure Blob, or even a CDN.
PMTiles packages all the vector tiles for a dataset into a single file that can be served from static storage. Traditional web map tiles require a server that can take incoming requests, query a database, and generate tiles on the fly. PMTiles eliminates this entirely.
The magic is in the Hilbert Curve organization. Tiles that are spatially near each other are also located near each other in the file, enabling efficient range requests for any viewport. A typical world-scale basemap PMTiles file might be 50-100GB, but requesting tiles for a city view fetches just kilobytes.
GeoParquet: Analytics at Scale
While COG and PMTiles excel at visualization, GeoParquet targets analytics. It's the columnar format of choice for spatial data science—joining spatial data with business data, running aggregations, or feeding features into ML models.
GeoParquet inherits all the benefits of Apache Parquet: columnar compression, predicate pushdown, and seamless integration with the modern data stack (DuckDB, Spark, BigQuery, Snowflake). The geometry column is stored as WKB (Well-Known Binary), making it compatible with virtually every GIS tool.
Format Selection Guide
- COG — Raster visualization and processing (satellite imagery, DEMs, aerial photos)
- PMTiles — Vector visualization (basemaps, reference layers, thematic maps)
- GeoParquet — Vector analytics (spatial joins, aggregations, ML feature engineering)
- FlatGeobuf — Simple vector streaming with bbox filtering
- Zarr — Multi-dimensional arrays (climate data, time series rasters)
The Tippecanoe Workflow
For creating PMTiles, Mapbox's Tippecanoe remains the gold standard. It's ruthlessly practical about generalization—removing features at low zoom levels that would render as single pixels, simplifying geometries to match the visual fidelity possible at each scale.
# Generate PMTiles from GeoJSON
tippecanoe -o output.pmtiles \
--minimum-zoom=0 \
--maximum-zoom=14 \
--drop-densest-as-needed \
--extend-zooms-if-still-dropping \
input.geojsonBenchmarks show Tippecanoe achieves 92% size reduction compared to raw GeoJSON, translating to 6x faster loads on mobile networks.
Real-World Infrastructure
Our production stack for serving geospatial data has become remarkably simple:
Serverless Geospatial Stack
Cloudflare R2 or AWS S3
Object storage for COG, PMTiles, GeoParquet files
CloudFront or Cloudflare CDN
Edge caching with Range Request support
MapLibre GL JS or deck.gl
Client-side rendering with pmtiles-protocol
Titiler (optional)
Serverless COG processing via Lambda
DuckDB WASM
Browser-based GeoParquet analytics
The cost implications are dramatic. What previously required multiple EC2 instances, an RDS database, and Redis caching now runs on commodity storage at approximately $0.02/GB/month with zero compute costs for idle periods.
Our Perspective
Cloud-native formats represent the most significant infrastructure shift in geospatial since the move to web mapping. For organizations still running tile servers, the migration path is clear: convert to COG/PMTiles, upload to object storage, update client code, and decommission servers.
The one caveat: these formats optimize for visualization and analysis, not for transactional editing. If your workflow requires frequent updates to spatial data, you'll still need a database—though even there, PostGIS can export to cloud-native formats on a schedule for read-heavy workloads.
References & Further Reading
Cloud Native Geospatial Formats Guide
Comprehensive guide to COG, PMTiles, GeoParquet and related formats
https://guide.cloudnativegeo.org/
PMTiles GitHub Repository
Official PMTiles specification and tooling
https://github.com/protomaps/pmtiles
Cloud Native Geospatial Formats Explained
Matt Forrest's practical comparison of formats
https://forrest.nyc/cloud-native-geospatial-formats-geoparquet-zarr-cog-and-pmtiles-explained/
Where is COG for Vector?
Cloud Native Geo Foundation's analysis of vector format evolution
https://cloudnativegeo.org/blog/2023/10/where-is-cog-for-vector/
Tippecanoe Vector Tiles Optimization
Practical guide to Tippecanoe for production PMTiles
https://johal.in/tippecanoe-vector-tiles-python-geojson-optimize-2025/