Map tiles and zoom levels
Introduction
A map tile is a square graphic or vector fragment—typically measuring 256×256 pixels—that constitutes an interactive web map. Browsers never fetch entire world maps at once; instead, they request only the few dozen tiles intersecting the visible viewport, assembling them into a seamless grid.
This architecture ensures rapid rendering and allows servers and CDN edges to pre-cache tiles. For high-density displays, servers often deliver 512×512 pixel double-resolution tiles (@2x) governed by the same spatial addressing scheme. Understanding tile mechanics is essential for deploying map services, sizing storage, and troubleshooting network bottlenecks.
Tile pyramid
Tiles are organized hierarchically into a zoom level pyramid. At zoom level 0, the entire world fits within a single tile. With each zoom increment, each tile splits into four child tiles: level 1 contains 4 tiles, while level 2 contains 16. The general formula is 4^z tiles at zoom z.
Tile counts grow exponentially. Zoom level 12 contains over 16.8 million tiles, while level 18 demands more than 68.7 billion. Consequently, global tile caches are never pre-rendered down to deep zoom levels: detailed tiles are generated only for designated areas or synthesized on demand upon user request.

Tile addressing {z}/{x}/{y}
Every tile is uniquely identified by three integers: zoom level z, column number x, and row number y. Standard tile server URL templates follow the format https://server/{z}/{x}/{y}.png. Coordinate x increments from west to east, beginning at the −180° antimeridian.
Row indexing follows two conventions. Under the XYZ scheme (standardized by OpenStreetMap and Google), y indexes from north to south starting at the top map edge. Under the Tile Map Service (TMS) specification, y indexes from south to north. The conversion formula is y_TMS = 2^z − 1 − y_XYZ. Confusing these conventions flips map tiles upside down.
Detailed formulas are documented in the OpenStreetMap wiki. For instance, central Tashkent (41.31° N, 69.28° E) falls into tile 12/2836/1531 under XYZ at zoom level 12, whereas its TMS y coordinate is 2564.

Pixel size and scale
Ground distance represented by a single pixel is calculated explicitly for each zoom level. At the equator at zoom 0, a 256-pixel tile spans Earth's equatorial circumference, yielding roughly 156,543 meters per pixel. Each successive zoom level halves this value. At other latitudes, this number is scaled by cos(latitude).
| Zoom level | At equator, m/pixel | In Tashkent, m/pixel |
|---|---|---|
| 10 | 152.9 | 114.8 |
| 12 | 38.2 | 28.7 |
| 14 | 9.55 | 7.18 |
| 16 | 2.39 | 1.79 |
| 18 | 0.60 | 0.45 |
This progression indicates appropriate zoom limits for specific data layers. Displaying 10-meter Sentinel-2 imagery at zoom level 18 adds no new ground information, generating useless tile storage overhead. Detailed baseline values are compiled in the OpenStreetMap wiki.

Raster and vector tiles
A raster tile is a pre-rendered PNG or WebP image: styling is applied server-side, and browsers merely display the bitmap. A vector tile packages geometries and attributes within the square boundary into compact Protocol Buffers; styling rules are evaluated client-side in the browser. Vector tiles allow on-the-fly theme switching without server re-rendering and support direct attribute inspection upon clicking.
In both paradigms, the pyramid hierarchy and {z}/{x}/{y} addressing remain identical. When integrating third-party tile providers, adhere to acceptable use policies: OpenStreetMap tile usage policies strictly prohibit bulk scraping and high-volume commercial production traffic.
Conclusion
Web maps partition geographic space into a multi-scale pyramid of square tiles. Every tile is addressed via the {z}/{x}/{y} coordinate tuple, with vertical axis direction differentiating XYZ and TMS conventions.
Selecting appropriate zoom limits balances spatial source resolution against infrastructure storage costs, preventing redundant tile proliferation.

