About

What is H3?

A hexagonal, hierarchical geospatial index that carves the Earth into cells you can address with a single ID — then zoom into any cell by stepping down a resolution.

H3 was developed by Uber and open-sourced in 2018. It solved a problem that comes up constantly in operations analytics for anything that moves across a map: how do you aggregate events — pickups, deliveries, outages, sightings — into comparable spatial buckets, at the resolution the question calls for, without the artifacts you get from latitude/longitude grids?

The system's full name — Hierarchical Hexagonal Geospatial Indexing System — tells you most of what it does. It assigns every point on Earth to a hexagonal cell, every cell to a parent at a coarser resolution, and every parent to (approximately) seven children at the next finer one. Sixteen resolutions in all, from resolution 0 (122 cells covering the planet) to resolution 15 (cells smaller than a square metre).

Why hexagons?

Hexagons have a useful property that squares don't: every neighbour sits at the same distance from the centre. On a square grid, the four edge neighbours are closer than the four corner neighbours, which skews any analysis that depends on local proximity — nearest-neighbour searches, diffusion models, radial smoothing. Hexagons eliminate that artifact.

They also tile well visually, read well in heatmaps, and don't produce the "line" effect that square grids impose on maps.

The tradeoff is that hexagons can't perfectly subdivide into smaller hexagons — unlike squares, which quarter into four smaller squares — so H3 uses an aperture-7 subdivision where each parent corresponds to seven children, with a small amount of overlap at the edges. For most analytical purposes the imperfection is invisible.

Resolutions, roughly

ResolutionAvg. edge lengthRough feel
01,107 kmcontinent-scale
360 kmmetro region
63.2 kmneighbourhood
8461 mcity block cluster
9174 mcity block
1124.9 mbuilding footprint
133.6 mparking space
150.5 msub-metre precision

Resolution 8 and 9 are the most common choices for city-scale analytics — big enough to aggregate meaningful counts, small enough to resolve individual neighbourhoods or road segments.

What people use it for

About this site

H3Split is a small single-purpose utility. It takes H3 cell IDs at one resolution and returns the children at a finer resolution — a one-liner in h3-js (cellToChildren(cell, res)) that you nonetheless end up writing surprisingly often, in notebooks, in SQL UDFs, in one-off scripts.

Everything runs client-side via h3-js loaded from a CDN. Your cells never leave your browser. There's no account to create, nothing to install.

If you want to go further, the docs cover input formats, keyboard shortcuts, and gotchas, and the blog has deeper dives on H3 fundamentals and comparisons with other spatial indexes.

Built with h3-js. Not affiliated with Uber.