← Back to Blog

Coordinate grid maps explained — graticules, UTM zones, MGRS squares and State Plane, and how to read a grid reference

A blue globe with a latitude and longitude graticule sits at the center, joined by lines to five panels: a gridded globe with an angle arc, a world map cut into UTM zone strips, State Plane zones across the United States beside a crosshair, nested MGRS squares that zoom into finer grids, and a grid reference read right then up, with three zoom levels of the same point.

A coordinate grid map is a map with a reference network drawn over it, so a reader can turn a spot on the page into numbers and numbers back into a spot. There are two kinds of network. A graticule is made of angles: lines of latitude and longitude. A grid is made of distances: straight lines of eastings and northings in meters on a map projection, as in UTM, MGRS, the U.S. National Grid and State Plane. Choosing the right one comes down to extent and purpose, and a common source of error is mixing up the zone, the band or hemisphere letter, or the datum.

This post defines each system from its governing authority (NGA, USGS, FGDC, NGS), shows how to read a grid reference digit by digit, and lists the mix-ups worth guarding against. It then covers how ArcGIS Pro draws grids and how Pro and the ArcGIS Maps SDK for JavaScript convert coordinates. The Maps SDK sample was run on SDK 5.1.26 and 5.0.19 on October 7, 2026. The post closes with our own Grid Viewer, a free web app you can use to look at graticules, UTM zones and State Plane zones on a 2D map or a 3D globe, and with what that app still gets wrong.

Graticule or grid: angles versus distances

NGA draws the line cleanly. A graticule, or geographic reference system, references locations “using a system of angles”, and a geographic coordinate “is usually expressed in angular units of latitude and longitude.” A grid, or grid reference system, references locations “using a two dimensional Cartesian coordinate system referenced to a map projection”, and a grid coordinate “consists of and is written as an ordered pair of x and y values expressed in linear units.”

Why add a grid at all, when every point already has a latitude and longitude? Because latitude and longitude are hard to read off a flat sheet. The FGDC standard for the U.S. National Grid says it plainly: “it is difficult for humans to accurately determine a location coordinate from paper maps when latitude and longitude are used because they do not appear square on the flat map.” So, as a USGS fact sheet puts it, cartographers “superimpose on the map a rectangular grid consisting of two sets of straight, parallel lines, uniformly spaced, each set perpendicular to the other.”

ArcGIS Pro uses the same split for its layout elements. A graticule shows “location in geographic coordinates (degrees of latitude and longitude)”, and a measured grid shows “location using projected coordinates.” And since every place has a latitude and longitude, Pro notes that you can add a graticule “to a map in any projection.”

Three things called “grid” that are not coordinate grids. ArcGIS Pro’s reference grid divides a map into lettered and numbered cells “independent of the coordinate system”; it is not a grid reference. The Maps SDK’s arcgis-grid-controls is a sketching and snapping aid whose “grid spacing does not correspond to real world measurements.” And the FeatureTable’s grid is a table. As of 5.1.26 the Maps SDK ships no graticule or UTM grid layer class (we searched the installed type declarations; there is none), so our Grid Viewer draws its own lines, as described at the end of this post.

UTM: sixty zones, twenty latitude bands

Universal Transverse Mercator is the grid MGRS and USNG are built on. The facts below are NGA’s unless marked.

Coordinates inside a zone are eastings and northings in meters. The easting is 500,000 m at the zone’s central meridian. The northing is 0 m at the Equator for the northern hemisphere and 10,000,000 m at the Equator for the southern hemisphere. Those offsets are called false easting and false northing, and they exist, in USGS’s words, “to avoid negative numbers for locations south of the Equator.”

Snyder’s USGS projection manual describes the scale on the central meridian as reduced “to 0.9996 of true scale (a 1:2,500 reduction).” The lines of true scale lie about 180 km east and west of the central meridian, and the variation “reaches 1 part in 1,000 from true scale at the Equator.”

Working out a zone and band yourself

The arithmetic for a standard zone and band is short. This is the sample as we ran it in Node (selected lines of its output follow); it ignores the Norway and Svalbard exceptions on purpose:

// Sample A: naive UTM zone number + MGRS latitude band letter from WGS84 lon/lat.
// Ignores the Norway and Svalbard non-standard zones on purpose.
export function utmZone(lon) {
  // zone = floor((lon + 180) / 6) + 1, clamped so lon = 180 lands in zone 60
  return Math.min(60, Math.floor((lon + 180) / 6) + 1);
}
const BANDS = "CDEFGHJKLMNPQRSTUVWX"; // 20 letters, I and O omitted
export function latBand(lat) {
  if (lat < -80 || lat > 84) return null; // outside UTM: use UPS
  return BANDS[Math.min(19, Math.floor((lat + 80) / 8))]; // X is 72-84 (12 deg)
}
letters: 20 has I: false has O: false
west edge of zone 1                           lon=-180 lat=0 -> 1N
zone 1/2 boundary                             lon=-174 lat=0 -> 2N
Washington DC                                 lon=-77.0365 lat=38.8977 -> 18S
antimeridian +180                             lon=180 lat=0 -> 60N
Bergen, Norway (official zone 32V)            lon=5.3 lat=60.4 -> 31V
Longyearbyen, Svalbard (official zone 33X)    lon=15.6 lat=78.2 -> 33X
band X bottom                                 lon=0 lat=72 -> 31X
beyond 84N -> UPS                             lon=0 lat=84.5 -> 31 (no band: UPS)

Read that output with its limits in view, because each one is a way this formula goes wrong:

That is why Sample A is a teaching aid, not production code. In an app, let coordinateFormatter (below) or ArcGIS Pro work out the zone.

MGRS and the U.S. National Grid

The Military Grid Reference System is “an alpha-numeric system for expressing UTM/UPS coordinates”, and “a single alpha-numeric value references a position that is unique for the entire earth.” It is built in three layers, with one polar exception:

The U.S. National Grid (USNG) is, per NGA, “functionally equivalent to the Military Grid Reference System (MGRS). The main difference between the two systems is in the method for specifying the datum.” The FGDC standard that defines it (FGDC-STD-011-2001) sets the datum as NAD 83 or its international equivalent, WGS 84, and marks NAD 27 values with a (NAD 27) suffix. It targets mapping “at scales of approximately 1:1,000,000 and larger” and defines how to present UTM coordinates at various levels of precision.

Digits are precision, not accuracy

The FGDC standard’s own example shows how the digit count sets the size of the square a reference names:

ReferenceDigitsPrecision
18SUJ20210 km
18SUJ230641 km
18SUJ2340646100 m
18SUJ23480647810 m
18SUJ2348306479101 m

Precision is not accuracy, and the standard keeps them in separate sections. On accuracy: “Paper maps using the USNG grid shall conform to the National Map Accuracy Standard.” On precision, USNG “provides a flexible numbering scheme to accommodate variable precision from tens of kilometers to one meter or higher”, and “for general field applications, a precision of one hundred or ten meters will be typical.” A ten-digit reference names a 1 m square. It does not make the position behind it good to 1 m.

How to read a grid reference

Two rules from the FGDC standard do most of the work. Read “from left with Easting first, then Northing”, and “an equal number of digits shall always be used for E and N.” The memory aid it gives is “right (Easting) and up (Northing).” So split the numeric part down the middle: the first half is the easting, the second half is the northing.

Plotting a point on a gridded map works the same way. In the USGS fact sheet’s worked figure, the nearest grid line west of point P is 357,000 mE and the nearest line south is 4,276,000 mN. The point sits 800 m east and 750 m north of those lines, so its coordinates are 357,800 mE, 4,276,750 mN. The rule, verbatim: “The northing of the point is the value of the nearest grid line south of it plus its distance north of that line; its easting is the value of the nearest grid line west of it plus its distance east of that line.”

Converting a point in code

In the Maps SDK for JavaScript, coordinateFormatter converts a geographic point to MGRS, USNG and UTM strings. Its reference page sets three conditions: load() must be called first if isLoaded() is false, “the browser must support WebAssembly for this module to work”, and the formatting methods expect the point’s spatial reference to be geographic. It is not deprecated at 5.1.26. This is the core of the sample we executed from the CDN in headless Chromium, on 5.1.26 and on 5.0.19, with identical output:

const [coordinateFormatter, Point] = await $arcgis.import([
  "@arcgis/core/geometry/coordinateFormatter.js", "@arcgis/core/geometry/Point.js"]);
await coordinateFormatter.load();
const p = new Point({ longitude: -77.0353, latitude: 38.8895 });
coordinateFormatter.toMgrs(p, "automatic", 5, true);   // "18S UJ 23478 06483"
coordinateFormatter.toMgrs(p, "automatic", 1, false);  // "18SUJ20"
coordinateFormatter.toUsng(p, 4, false);               // "18SUJ23470648"
coordinateFormatter.toUtm(p, "latitude-band-indicators", true); // "18S 323478 4306483"
coordinateFormatter.toUtm(p, "north-south-indicators", true);   // "18N 323478 4306483"

Run it inside a <script type="module"> on a page that already loads https://js.arcgis.com/5.0/; the comments show what each call returns. The input point is our approximation of the Washington Monument. It is not the point behind the FGDC table above: the SDK’s 10 m reference is 18SUJ23470648, one digit off FGDC’s 18SUJ23480647 in each axis. The two inputs are only about 5 m apart east-west and 4 m north-south (compare the 1 m references), and truncation turns that into a full 10 m step. $arcgis.import is the no-build CDN pattern; an npm app would use static imports. The same run put Bergen at 32V KN 96191 01684, which is where the Norway exception shows up.

The conversion mode argument ("automatic") does two jobs. Its allowed values are "automatic", "new-180-in-zone-01", "new-180-in-zone-60", "old-180-in-zone-01" and "old-180-in-zone-60". The zone 01 versus 60 part matters only when writing MGRS for a point at exactly 180° longitude. The new versus old part picks the 100 km lettering scheme. The JavaScript page does not explain it, but Esri’s .NET reference for its MgrsConversionMode does: automatic uses the new (AA) scheme for new datums such as WGS 84 and the old (AL) scheme for older datums. That is the WC versus WN difference in the datum examples below.

The datum in code

Formatting a WGS 84 point is the easy half. Parsing a reference someone typed is where the datum goes missing, because the formatter’s parsers fall back to WGS 84. fromMgrs and fromUtm assume WGS 84 when no spatial reference is given. With no spatial reference given, fromUsng reads a string as NAD 27 only when it ends in (NAD 27), and as WGS 84 otherwise. Going the other way, the reference page shows toUsng writing a (NAD 27) suffix when the point’s spatial reference is based on NAD 27; we did not run that case. And if you need to move legacy coordinates between datums in the browser, note the projectOperator limit: it “currently only supports equation-based geographic transformations”, and “grid-based transformations are not supported.” Check which transformation your datum pair needs before you plan on doing it client-side.

State Plane, briefly

The State Plane Coordinate System (SPCS) is the National Geodetic Survey’s family of zones built from three projections: Lambert Conformal Conic, Transverse Mercator and Oblique Mercator. NGS’s manual: Lambert “was used for States that are long in the east-west direction”, Transverse Mercator for states or zones long north-south, and Oblique Mercator “in one zone of Alaska when neither of these two was appropriate.” Referred to NAD 83 or NAD 27, the system is SPCS 83 or SPCS 27.

NGS describes SPCS as “a system of large-scale conformal map projections originally created in the 1930s to support surveying, engineering, and mapping activities throughout the U.S. and its territories.” The design criteria for SPCS 27 included keeping scale distortion under one part in 10,000, covering each state with as few zones as possible, and drawing zone boundaries along county lines.

Two unit facts matter in practice. NGS publishes SPCS 83 coordinates in meters (ten states defined which foot to use when converting). And since January 1, 2023, NIST says, the U.S. survey foot “is deemed obsolete and superseded by the international foot”, 0.3048 m exactly. The same page adds that the survey foot “should be avoided, except for historic and legacy applications.” So new State Plane work belongs in meters or international feet, while existing data defined in survey feet keeps that definition. Convert it if you must; never just relabel it as international feet, because the two feet are not the same length.

State Plane is also in transition. NGS’s policy page, read on October 7, 2026, says SPCS2022 “is being developed as part of the transition from the North American Datum of 1983 (NAD 83) to the 2022 Terrestrial Reference Frames.” It “will replace the State Plane Coordinate System of 1983”, but, technically, “SPCS 83 policies are still in effect, since SPCS2022 has not yet been fully defined or adopted.” The next sentence reads: “But in practical terms those policies are now defunct, since there will be no further changes to SPCS 83.” The NAD 83 reference frames themselves are slated to be replaced by four plate-fixed terrestrial reference frames. We give no date for either; the pages we read do not.

Which grid for which job

The authorities say a few things directly about who uses what, and we quote those. The rest of this section is our guidance, reasoned from the facts above.

What the sources say.

Our guidance. A graticule is the natural choice when a map spans many UTM zones or reaches the poles, since UTM stops at 80°S and 84°N and a graticule works in any projection. UTM suits regional work inside one zone, where its distortion stays small. MGRS or USNG suits anything where a person has to say or type a location as one short string that names a single square worldwide, once sender and receiver agree on the datum. That is why we would reach for it in a public-safety or field app. State Plane suits survey and engineering work inside one state, which is what it was designed for. And as USGS notes for UTM and latitude/longitude, the choice is not about accuracy.

If you are not the one making the maps. A grid reference passed between teams carries three silent assumptions: the zone, what the letter after it means, and the datum. If any one differs between sender and receiver, the number still looks valid and nothing flags it. In the FGDC example below, the same point’s reference differs by about 210 m north-south between NAD 83 and NAD 27; in NGA’s example even the 100 km square letters change. The fix is to put it in writing. Any coordinate list your team exchanges should state the notation (MGRS, USNG or UTM), whether the letter after the zone is a band or a hemisphere, the datum, the number of digits and, for State Plane, the unit. USNG’s own standard shows the model, with a (NAD 27) suffix on NAD 27 references. A file that arrives without those facts goes back to the sender.

Mix-ups worth guarding against

The letter after the zone

NGA’s warning, verbatim: “In many systems, the letter after the zone number designates a latitudinal band, not a hemisphere.” And: “Caution must be used to not confuse the letter ‘S’ band letter for a hemisphere designation and vice versa.” The SDK sample above shows it on one point: Washington is 18S 323478 4306483 in band format and 18N 323478 4306483 in hemisphere format. Band S is in the northern hemisphere. Read 18S as “south” and the northing is measured from the wrong origin. ArcGIS Pro’s Convert Coordinate Notation tool spells it out for its band format: “N or S does not designate a hemisphere.” Always know which format a UTM string is in.

The datum behind the reference

The same ground point has different grid references on different datums. Two worked examples from the sources, with our arithmetic, and each applies to that one point only:

Of the NAD 27 to NAD 83 change, NGS writes that “the ellipsoid change is the major contributor of the coordinate shift.” We do not quote a general size for the shift, because none of our sources gives one. Treat the two figures above as examples, not a rule.

Shortening a reference: round or truncate?

The standards disagree, so name the one you follow. NGA’s example shortens 15SWC8081751205 (1 m) to 15SWC80825121 (10 m), which is rounding. The FGDC USNG standard says “A uniform system of truncation is adopted for the USNG.” The Maps SDK’s formatter truncates: in our sample the 1 m digits 23478 06483 became 2347 0648 at 10 m.

One grid, one coordinate system

In ArcGIS Pro, “a grid is associated with a single coordinate system. To create a map with a grid showing multiple UTM zones, each clipped to the UTM zone boundary, you need to create a grid for each zone.”

Units

As noted under State Plane, a value in U.S. survey feet uses a unit NIST has kept only for historic and legacy applications since the start of 2023. The mix-up to guard against is the label, not the unit: legacy survey-foot data must stay labeled as survey feet, and new work should use meters or international feet.

Doing it in ArcGIS

ArcGIS Pro. Pro offers “five types of grids that can be added to a map frame: graticules, measured grids, MGRS grids, reference grids, and custom grids.” To add one, select the map frame in an active layout view, then on the Insert tab, in the Map Frames group, click Grid. Pro ships two MGRS grid styles, one at 1,000 m gridline intervals and one at 10,000 m for smaller-scale maps. For coordinates stored in a table, the Convert Coordinate Notation tool converts between DD, DDM, DMS, GARS, GEOREF, UTM, USNG and MGRS, and it is available at the Basic, Standard and Advanced license levels.

Maps SDK for JavaScript. The arcgis-coordinate-conversion component shows a location in several notations; its reference states that “the default formats are basemap, dd, ddm, dms, mgrs, usng, utm, and xy.” (The intro list on the same page omits USNG; the formats sentence is the complete one.) It documents a headingLevel property that you may need to adjust for proper heading semantics, which the page calls important for meeting accessibility standards.

Two 5.1 changes are worth knowing before you build on it. Release 5.1 added a beta arcgis-coordinate-conversion-next component, and Esri says that “in version 6.0, the implementation of arcgis-coordinate-conversion will be updated under the hood to that of arcgis-coordinate-conversion-next.” And five properties of the current component have been deprecated since 5.1 and will be removed in that migration: expanded, hideCaptureButton, hideExpandButton, hideInputButton and hideSettingsButton. Do not start new code on them. Both points depend on a beta and the 6.0 schedule, so re-check them when 6.0 ships.

Cost. coordinateFormatter runs in the browser in WebAssembly; the pe-wasm download, as we measured it on 5.1.24, is 660,623 bytes brotli (2,844,903 decoded), and the coordinateFormatter reference page documents no per-call charge. Load it once, when the first conversion is needed, rather than at app start. One obligation does apply: Esri’s licensing page requires attribution “in all applications that use Esri technology, whether or not they contain a map.” We have not measured whether arcgis-coordinate-conversion makes network requests for any format, so we make no cost or offline claim for the component.

Try it in Grid Viewer

Our Grid Viewer draws three of the systems in this post. It needs no sign-in and ships no API key at load. It is a learning tool, and it has known defects, listed below.

What it is and is not. The grid lines are computed by the app’s own arithmetic and drawn as WGS 84 polylines in a graphics layer; the SDK’s projection engine is used only for the two UTM sample dots. It has no MGRS or USNG mode: the grid type list offers exactly the three systems above. Inspection is by pointer click, with no keyboard equivalent yet, the page blocks pinch-zoom on mobile, and it loads Google Tag Manager.

Known defects. Writing this post, we checked the app against the rules above, and it breaks some of them:

If you need a published grid in a web map instead, Esri’s World UTM Grid and World Latitude and Longitude Grids are public feature services owned by Esri; queried at Bergen, World UTM Grid returns zone 32, row V. For a side-by-side of UTM, State Plane and latitude/longitude on one map, see our coordinate systems explainer.

The short version

References

Need grid references your field teams can trust?

Zone, letter (band or hemisphere) and datum are the three assumptions that travel silently with every grid reference. We build ArcGIS Pro layouts and Maps SDK apps that state all three. Book a free intro call and we will look at how your maps and apps write coordinates.

Book a free intro call