Tile Rendering
maps.guru serves vector tiles in the Mapbox Vector Tile (MVT) format using PMTiles archives stored on Cloudflare R2.
Tile URL Format
https://tiles.maps.guru/v1/{source}/{z}/{x}/{y}.pbf?key=YOUR_API_KEY
| Parameter | Description |
|---|---|
source | Tile source name (e.g., planet-vector) |
z | Zoom level (0-15) |
x | Tile column |
y | Tile row |
Available Sources
| Source | Description | Max Zoom |
|---|---|---|
planet-vector | Full planet vector tiles with OpenMapTiles schema | 15 |
Vector Tile Layers
The planet-vector source includes these layers:
| Layer | Description | Min Zoom |
|---|---|---|
water | Oceans, lakes, rivers | 0 |
landcover | Forests, parks, farmland | 0 |
boundary | Country, state, admin boundaries | 0 |
transportation | Roads, railways, paths | 4 |
building | Building footprints | 13 |
place | City, town, village labels | 2 |
poi | Points of interest | 12 |
Caching
Tiles are cached at multiple levels for optimal performance:
| Layer | TTL | Effect |
|---|---|---|
| CDN (Cloudflare) | 1 week | Tiles served from nearest edge |
| PMTiles header | 1 hour | Avoids re-reading tile index |
| In-memory | Per instance | Faster directory lookups |
Typical latency:
- CDN hit: ~70ms
- CDN miss: ~200ms (fetches from R2)
- Cold start: ~300-400ms
Fonts and Sprites
Static assets are served publicly (no API key required):
# Font glyphs
https://tiles.maps.guru/fonts/{fontstack}/{range}.pbf
# Sprite sheets
https://tiles.maps.guru/sprites/v2/{name}.json
https://tiles.maps.guru/sprites/v2/{name}.png
These assets have a 1-year immutable cache and are not counted toward your usage quota.