From the shop Need hex battlemaps? Browse 600+ hand-drawn maps
Visit Etsy
Tools / Maps / Map coordinates
Maps · Free tool

Stamp coordinates on any map.

Upload a battlemap or hex map, pick a coordinate system, align it to your grid, and export with labels baked in. Works with square or hex grids.

Drop a map here
or click to browse · PNG, JPG, WEBP up to 30 MB
No image loaded
Renders locally · nothing uploaded
50px
70px
#1F1410
14px
X
Y
Tip
Use the X/Y offset inputs to nudge the grid until each label sits in the centre of its tile. Label size is in absolute pixels, so large labels stay large at any zoom.

Field notes

Hex coordinates for tabletop maps

Hex grids are a staple of overland travel, wilderness exploration, and wargaming. But most published hex maps ship without coordinate labels, which means the DM ends up counting hexes by hand during the session or printing a separate reference sheet. This tool stamps coordinates directly onto the map image so every hex has a clear, readable label ready for the table.

Axial versus offset coordinates

The two most common hex coordinate systems are axial and offset. Axial coordinates assign each hex a pair (q, r) along two axes that follow the hex edges. This makes distance calculations and pathfinding elegant, which is why most game engines and VTT plugins use axial internally. Offset coordinates use column and row numbers, like a spreadsheet. They are easier to read aloud at the table ("move to column 4, row 7") and easier to index in a lookup table. Neither system is wrong. Pick the one that matches how your table talks about the map.

Flat-top versus pointy-top hexes

Hex orientation affects how coordinates map to the grid. Flat-top hexes have a flat edge along the top, which is the default in most wargames and many published hex maps. Pointy-top hexes are rotated 30 degrees and are common in Civilization-style games and some VTT systems. Check your source map before labelling. If the hexes have a flat edge at the top, use flat-top orientation. If they have a pointed vertex at the top, use pointy-top.

Aligning the grid to your map

Not every hex map uses the same hex size or the same origin point. The hex size slider controls the radius of each generated hex, and the X/Y offset inputs shift the entire grid horizontally and vertically. Start by adjusting the hex size until the generated hexes roughly match the ones on your map, then fine-tune position with the offset controls. A well-aligned grid should place each coordinate label in the centre of its hex.

Choosing label colour and size

Label readability depends on contrast. Dark maps need white or light-coloured labels. Light maps need black or dark labels. The terracotta swatch works well on both neutral and green terrain because it sits between warm and cool tones. Label size should be large enough to read but small enough not to obscure map features. For most maps, 10 to 14 pixels is the sweet spot.

Using labelled hex maps in VTTs

The exported PNG works in any VTT that accepts image maps: Roll20, Foundry VTT, Owlbear Rodeo, Shmeppy, or a simple screen share. Import the labelled map as a scene background and set the VTT's grid to hex mode with the same hex size. Coordinates baked into the image ensure that players and the DM always agree on which hex they are referencing, even if the VTT's own coordinate display is hidden or differently numbered.

Privacy and browser limits

All processing happens locally in your browser. The image is drawn onto an HTML5 canvas, coordinates are rendered as text, and the composite is exported as a PNG download. No data is uploaded to any server. The main limitation is browser canvas size, typically around 8000 by 8000 pixels. Standard hex maps are well within this bound.

FAQ

Axial coordinates use two axes (q and r) that run along hex edges, giving clean diagonal math. Offset coordinates use column and row numbers like a spreadsheet. Axial is better for pathfinding and game logic. Offset is easier for humans to read at the table.

No. The image stays in your browser. Coordinates are drawn on a local canvas element. Closing the tab clears everything.

Yes. Upload any hex map image (PNG, JPG, or WebP), then adjust hex size, orientation, and offset until the coordinate grid aligns with your map. The tool works with both flat-top and pointy-top hexes.

It depends on your map. Start with the default of 50 pixels and adjust the slider until the hex outlines match your map grid. Most commercial hex maps use a hex size between 40 and 80 pixels.

Yes. Five colour swatches are available: black, white, terracotta, green, and blue. Pick whichever reads best against your map background.

Up to around 8000 by 8000 pixels before most browsers run into canvas limits. Standard hex maps are well within this range.