zoom level
A zoom level determines how much of the world is visible on a map. Mapbox provides maps in 23 zoom levels, with 0 being the lowest zoom level (fully zoomed out) and 22 being the highest (fully zoomed in). At low zoom levels, a small set of map tiles covers a large geographical area. At higher zoom levels, a larger number of tiles cover a smaller geographical area.
| At zoom level | You can see |
|---|---|
| 0 | The Earth |
| 3 | A continent |
| 4 | Large islands |
| 6 | Large rivers |
| 10 | Large roads |
| 15 | Buildings |
Zoom level quadtrees
Map tiles are stored in a quadtree data structure. At zoom level 0, you can see a map of the whole Earth, and this image is contained in a single tile. At zoom level 1, the single tile you saw at zoom level 0 splits into exactly four tiles so the whole world fits in a 2x2 tile square. Each zoom level quadtree divides the tiles of the one before it, which creates a grid of 2zoomx2zoom. The highest zoom level, 22, is a 222x222 grid.
Tile size
Libraries based on Mapbox GL display 512x512 pixel tiles by default, while many other mapping libraries use 256x256 pixel tiles. The only Mapbox product that work with 256x256 pixel tiles by default is the Mapbox Raster Tiles API. If you're working with Mapbox GL JS but would like to display 256x256 pixel tiles, you can also specify that individual Mapbox sources are 256x256 pixel tiles in your map's source definition or by ensuring the source's TileJSON is correct.
While a 512x512 tile and a 256x256 tile cover the same geographic area at any given zoom level, they will appear differently when displayed by Mapbox GL JS versus a traditional tiled map. In Mapbox GL JS, all tiles are offset by one zoom level. This means that when a Mapbox GL JS map is zoomed to zoom level 2, it will display the same geographic area as a traditional tiled map zoomed to zoom level 1. Because of this zoom offset, the appearance of a Mapbox GL JS map at zoom level 1 is the same as the appearance of a traditional tiled map at zoom level 2.