ForHosting KIT · Developer Utilities

USNG grid to latitude and longitude

A United States National Grid reference identifies an area rather than an infinitely precise point.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

This converter reads a compact or spaced USNG reference, validates its UTM zone, latitude band, one-hundred-kilometer grid square, and numerical precision, then returns an approximate WGS84 latitude and longitude at the center of the represented cell. Centering matters because a ten-kilometer reference and a one-meter reference describe very different areas. The response preserves that meaning by reporting the cell size, precision, UTM coordinates, zone, band, and square alongside decimal degrees. Everything runs through deterministic local mathematics without maps, network calls, random values, or current-time dependencies.

How a USNG reference identifies a grid cell

A USNG reference starts with a numbered UTM zone from 1 through 60 and a latitude band letter from C through X, with I and O omitted to avoid confusion with numerals. Two more letters identify a one-hundred-kilometer square. Their permitted sequences rotate by zone: column alphabets repeat every three zones, while row alphabets shift between odd and even zones. The remaining characters, when present, are digits divided equally between easting and northing. One digit on each side describes a ten-kilometer cell, two describe a one-kilometer cell, and five describe a one-meter cell. A reference with no digits describes the entire one-hundred-kilometer square. The converter removes ordinary spacing, normalizes letters to uppercase, and validates each component before calculating anything. It expands the grid letters and digit pairs into UTM coordinates for the south-west edge, determines the cell size from the digit count, and adds half that size to both axes. That final half-cell adjustment is what makes the result a center coordinate instead of a corner. The reference still describes an area, so the returned latitude and longitude should be treated as an approximate representative point, especially when the supplied USNG precision is coarse. The response explicitly includes cell_size_m and point set to center so downstream software does not mistake the coordinate for surveyed accuracy.

From UTM meters to WGS84 latitude and longitude

Once the parser has a centered easting and northing, it resolves the repeating row pattern against the minimum northing of the stated latitude band. This step is necessary because USNG row letters repeat every two million meters and cannot identify a unique northing without the band. Southern bands use UTM false northing, while northern bands measure normally from the equator. The centered UTM coordinate is then inverted to geographic coordinates using the WGS84 ellipsoid, its standard flattening, the UTM scale factor, and the usual meridional-arc and footpoint-latitude series. The zone selects the central meridian, and the series corrects the point away from that meridian. After conversion, the resulting latitude is checked against the declared band so a syntactically plausible but geographically inconsistent square fails rather than returning a misleading point. Successful JSON includes latitude and longitude as well as short lat and lon aliases, the normalized USNG string, zone, band, two-letter square, numerical precision, cell size in meters, centered UTM easting and northing, point semantics, and WGS84 datum. Floating results are rounded consistently to eight decimal places for stable fixtures and repeatable integrations. The algorithm performs a fixed amount of bounded arithmetic, uses no external geocoder or map service, and therefore returns the same result for the same input in the browser and API.

Choosing precision and using the center responsibly

Use the number of USNG digits as an accuracy statement, not merely a formatting choice. A grid reference with five easting and five northing digits names a nominal one-meter cell, but that does not prove the original observation was measured to one meter. Conversely, a reference with one digit per axis intentionally covers a ten-kilometer square, so its center may be several kilometers from the actual feature. Keep cell_size_m with every converted coordinate when importing incident logs, field notes, asset lists, or historical records. Mapping software can use the center for a marker while using cell size to draw an uncertainty square or choose an appropriate zoom level. The tool accepts compact forms and conventional spacing, which makes it useful for copied reports and human-entered map references, but it deliberately rejects missing grid letters, forbidden I or O characters, odd digit counts, zones outside 1 through 60, zone-incompatible columns, and squares inconsistent with their latitude band. Those errors are safer than guessing. For API automation, a successful item uses the published base price of $0.002; the browser runner is suitable for quick individual lookups. If your source is MGRS, verify its conventions before labeling the value USNG, and if you require a cell polygon rather than its representative center, retain the returned UTM center and cell size or use a dedicated bounds conversion. This capability returns coordinates, not an address, elevation, jurisdiction, or claim of survey-grade accuracy.

Place field reports on a map

Turn USNG references from incident forms or radio logs into centered WGS84 markers while retaining each cell's stated precision.

Import legacy grid records

Normalize compact and spaced USNG values into deterministic decimal-degree coordinates for GIS tables, audits, and migration checks.

Validate mapping software

Use stable center coordinates, UTM values, and cell sizes as regression fixtures for applications that accept United States National Grid input.

Which point in the USNG cell is returned?

The center. The converter expands the south-west grid coordinate and adds half the represented cell size to both UTM axes before converting to WGS84.

How does numerical precision affect the result?

Zero to five digits per axis represent cells from 100 kilometers down to one meter. Coarser cells produce a representative center with correspondingly greater location uncertainty.

Can the reference contain spaces or lowercase letters?

Yes. Ordinary whitespace is removed and letters are normalized to uppercase before validation, so compact and conventionally spaced forms are equivalent.

What datum does the result use?

The latitude and longitude use WGS84. The response also includes the centered UTM easting and northing, zone, band, square, and cell size.

What does conversion cost?

The browser tool runs free. A successful API item uses the published base price of $0.002.

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/usng-to-latlon

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/usng-to-latlon \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"usng":"18S UJ 23483 06479"}'
{
  "usng": "18S UJ 23483 06479"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.usng_to_latlon",
  "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.

Read the full KIT documentation →