ForHosting KIT · Travel & geography

Web Mercator ground resolution calculator

At the equator and zoom 0, one pixel of a standard web map covers 156,543.033928 m and a full 256-pixel tile 40,075,016.6856 m. Each zoom level halves that, and higher latitudes shrink it further. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Latitude
0
Zoom
0
You get
Meters per pixel
156,543.033928
Meters per tile
40,075,016.6856
Tile size px
256
Earth radius m
6,378,137

This Web Mercator ground resolution calculator tells you how many meters on the ground are represented by one pixel at a chosen latitude and slippy-map zoom level. It uses the standard EPSG:3857 sphere, a 256-pixel tile, and the familiar XYZ tile pyramid used by common web maps. The result is useful when converting screen distances into approximate real-world distances, sizing map symbols, building scale bars, or selecting imagery for a target level of detail. The calculation is deterministic, requires no network access, and also reports the ground width represented by one complete tile.

Understand what ground resolution measures

Ground resolution expresses the approximate real-world distance covered by one map pixel, usually in meters per pixel. It is not the resolution of a monitor, the accuracy of a GPS reading, or the native detail of aerial imagery. Instead, it connects the digital grid of a Web Mercator map with distance along the Earth at a specified latitude.

At zoom zero, a standard slippy map places the full projected world into one 256-pixel tile. Every increase of one zoom level doubles the number of tiles in each direction, so the ground distance represented by each pixel is halved. Latitude matters because Web Mercator stretches the projected map as it approaches the poles.

A pixel at a high latitude therefore corresponds to less east-west ground distance than a pixel at the equator at the same zoom.

How the Web Mercator formula works

The calculator uses the equatorial radius 6,378,137 meters adopted by EPSG:3857. First it calculates the spherical equatorial circumference as two times pi times that radius. Dividing the circumference by 256 gives the initial resolution at zoom zero on the equator.

It then divides by two raised to the requested zoom, reflecting the doubling of the slippy-map grid at every level. Finally, it multiplies by the cosine of latitude in radians. In compact form, resolution equals cos(latitude) times 2πR, divided by 256 times 2^zoom.

The response uses a fixed 256-pixel tile because that is the standard logical tile size for XYZ maps. A renderer serving 512-pixel image tiles at the same logical zoom may need to account for its tile and zoom conventions before applying the value. Inputs are restricted to integer zoom levels from zero through thirty and latitudes inside the practical Web Mercator boundary of approximately plus or minus 85.05112878 degrees.

Rejecting values outside that boundary prevents a mathematically plausible number from being mistaken for a valid position in the finite slippy-map world.

Apply the result without overstating precision

Use ground resolution as a map-scale conversion, not as a promise that the source data is equally accurate. For example, a result of two meters per pixel means a ten-pixel line spans approximately twenty meters near the chosen latitude, but the underlying road geometry, satellite image, or device location may have a much larger uncertainty.

Scale also varies across a viewport because latitude changes from its top edge to its bottom edge; using the map center latitude is normally adequate for an ordinary interactive view, while tall regional exports may need values sampled at several latitudes. The result is especially practical for choosing clustering radii, converting a click tolerance into meters, estimating the footprint of a raster export, and labeling a scale bar. When comparing different zooms, remember that each whole zoom step halves meters per pixel.

When comparing places at one zoom, higher absolute latitudes produce smaller values because of the cosine adjustment.

Build an accurate map scale bar

Convert a desired pixel width at the map center latitude into an approximate labeled ground distance.

Choose clustering and hit-test radii

Translate interface thresholds measured in pixels into meters at a specific zoom and latitude.

Plan raster exports

Estimate the ground width of tiles or image pixels before requesting or processing mapped imagery.

What formula does this calculator use?

It uses cos(latitude) × 2π × 6378137 divided by 256 × 2^zoom. Latitude is converted to radians before applying cosine.

Why does resolution change with latitude?

Web Mercator expands scale toward the poles, so one projected pixel represents less ground distance at higher absolute latitudes.

Which tile size is assumed?

The calculation assumes the conventional logical slippy-map tile size of 256 pixels.

Can I use a fractional zoom level?

No. This capability accepts integer tile-pyramid zoom levels from 0 through 30.

How do I turn a distance on screen into metres on the ground?

Multiply the metres-per-pixel value by the width in pixels you measured on the map. The figure holds near the latitude you entered, so recalculate it when you move far north or south.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/geo/web-mercator-ground-resolution

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/geo/web-mercator-ground-resolution \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"latitude":40.7128,"zoom":12}'
{
  "latitude": 40.7128,
  "zoom": 12
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.web_mercator_ground_resolution",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Understand what ground resolution measures

Use the returned meters_per_pixel value for scale estimates near the supplied latitude, and multiply it by a screen or symbol width in pixels to estimate the corresponding ground distance. The accompanying meters_per_tile value applies the same resolution to the full 256-pixel width of a conventional XYZ tile.

How much does an API request cost?

Each successful API item costs $0.002. Invalid input is returned as an invalid_input error.

Read the full KIT documentation →