Web maps & tiles
Getting a dataset into a browser: tile pyramids, vector tiles, PMTiles and MapLibre styling.
Everything on Spatial Workflow about web maps & tiles, in the order that usually works: understand the idea, then run the task, then fix it when it goes wrong. 15 guides in total.
One learning path runs through this topic — follow it if you would rather work through a route than pick a single guide.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
- Web Map Tiles Explained: XYZ, Zoom Levels and the Tile Pyramid web map tiles explained
- Vector Tiles Explained: MVT, Layers and Why They Are Not GeoJSON vector tiles explained
- Generalisation for Zoom Levels Explained zoom generalisation explained
- PMTiles and MBTiles Explained: Tile Archives Without a Server pmtiles mbtiles explained
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Prepare a GeoDataFrame for the Web prepare geodataframe for web
- How to Build Vector Tiles from a GeoDataFrame in Python build vector tiles python
- How to Serve a Web Map from PMTiles with MapLibre serve pmtiles maplibre
- How to Render Raster Tiles from a COG in Python raster tiles from cog
- How to Export a Static Tile Pyramid for Offline Use export static tile pyramid python
- How to Style Data-Driven Colours in a Web Map data driven web map styling
- How to Add Interactivity and Popups to a Web Map web map popups interactivity
- How to Publish a GeoJSON API from a GeoDataFrame with FastAPI geojson api fastapi python
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
Learning paths through this topic
A curated route rather than a list — the guides in the order that builds on itself.
Related topics
Subjects that keep coming up alongside this one, most overlap first.