Plus Codes Explained
Plus Codes (formally Open Location Code) is a Google-developed open-source location encoding that gives any place on Earth a short alphanumeric identifier. Created in 2014 and released under Apache 2.0 license. A full 10-character plus code (e.g., 8FVC9G8F+6X) identifies a ~14 m × 14 m square; the '+' separator always appears between the 8th and 9th characters. Codes can be shortened in known local context. The 20-character alphabet (23456789CFGHJMPQRVWX) excludes easily-confused letters. Coverage is global, including ocean. Google Maps has displayed Plus Codes since 2018, and the system has been adopted as an addressing standard in parts of India and several African countries.
By Steve K.. Published . Last updated .
This article opens the Coordinate Format Deep Dives sub-hub. The /learn/coordinate-formats-explained pillar covers six formats at a glance; this sub-hub goes deeper on the alternative formats (Plus Codes, what3words, Geohash) that sit alongside DD/DMS/UTM/MGRS.
What a Plus Code is
A Plus Code is a string of alphanumeric characters that
unambiguously identifies a square on Earth. The
“canonical” or “full” form uses
10 characters plus a literal + separator, like:
8FVC9G8F+6X
This particular code identifies a ~14 m × 14 m square in Mountain View, California (Google's headquarters area, where the system was developed).
Key properties:
- Globally unique: each location on Earth has exactly one full Plus Code at a given precision.
- Computable: the code is derived from latitude and longitude via a deterministic algorithm. No central registry is needed.
- Open source: the algorithm and reference implementations are publicly available under Apache 2.0 license.
- Offline-capable: encoding and decoding can be done without network access.
- Shareable: the codes are short enough to dictate verbally or write on a postcard.
The character set
Plus Codes use a 20-character alphabet:
2 3 4 5 6 7 8 9 C F G H J M P Q R V W X
The alphabet is designed to avoid easily-confused letters and digits:
- Excludes
0(zero, confused withO). - Excludes
1(one, confused withIor lowercasel). - Excludes
A,B,D,E,I,L,N,O,S,T,U,Y,Z(variously confused with each other or with digits, or chosen to avoid spelling common words).
Each character represents 1 of 20 possibilities — so a Plus Code is base-20.
Why base-20? It's the largest base that fits in a character set this restricted, and base-20 gives clean hierarchical refinement: each pair of characters refines the location 20×20 = 400× more precisely.
Precision levels
The number of characters determines the size of the identified square:
| Length | Approximate cell size | Use case | | ------ | --------------------- | -------- | | 4 chars | ~110 km × 110 km | Country-region | | 6 chars | ~5.5 km × 5.5 km | City-area | | 8 chars | ~275 m × 275 m | Neighborhood/block | | 10 chars (default) | ~14 m × 14 m | Building/“address” | | 11 chars (extended) | ~3.5 m × 3.5 m | Apartment/specific spot | | 12 chars | ~0.85 m × 0.85 m | Surveying-precision | | 13+ chars | sub-meter | Specialty |
The 10-character form is the standard for “addresses” — comparable to a typical street address granularity. The 8-character form is useful for city-level identification.
The literal + separator always appears between the
8th and 9th characters in any code 8 characters or
longer. So 8FVC9G8F+6X parses as:
8FVC 9G8F + 6X
~city ~block + ~14m
How encoding works
The algorithm bisects latitude and longitude alternately, encoding each pair of bisection choices as a base-20 character.
Approximate sketch (the full reference is in the GitHub repo):
- Start with the full Earth grid: latitude [-90, +90], longitude [-180, +180].
- Divide the latitude range into 20 equal parts. Choose the part containing the target latitude.
- Divide the longitude range into 20 equal parts. Choose the part containing the target longitude.
- Combine the two choices into a single character via the alphabet.
- Recurse with the chosen smaller cell.
Two characters per level of refinement. 10 characters = 5 levels of refinement = the 14 m precision.
Decoding is the reverse: each character indicates one of 400 sub-cells; recurse to recover the latitude/longitude range.
The full algorithm includes additional details for hemispheres, normalizing input ranges, the +sign placement, and the 11-character extended-precision form. The reference implementations (JavaScript, Python, Java, Go, C, Swift, others) are short — under 200 lines — and the algorithm is unambiguously specified.
Shortening
A full 10-character code is unambiguous worldwide but verbose for local use. Plus Codes support shortening when local context is known:
Full: 8FVC9G8F+6X
Short: 9G8F+6X (Mountain View, CA)
Shorter: G8F+6X (Mountain View, CA)
The recipient combines the short code with the reference location to recover the full code. The shortening rules are specified deterministically: drop the first 2, 4, or 6 characters depending on how much context is provided.
In practice, Plus Codes are typically displayed in their short form with an accompanying city name:
G8F+6X Mountain View
Google Maps displays Plus Codes this way: shortened with a city reference for human-friendly use.
Worked example
The Empire State Building (40.7484° N, 73.9857° W):
- Latitude 40.7484°, longitude -73.9857°.
- Run the OLC encode algorithm.
- Result (10-character full code):
87G7PXQ4+4W.
Components:
87G7— first 4 chars, identifies a ~110 km region containing parts of New York / New Jersey.PXQ4— next 4 chars, narrows to Manhattan neighborhood scale.+— required separator between 8th and 9th characters.4W— final 2 chars, identifies the ~14 m square at the building.
A nearby pedestrian could shorten this to Q4+4W New York for local use.
Comparison with other formats
| Format | Length (URL-style) | Type | Coverage |
| ------ | ------------------ | ---- | -------- |
| Latitude/Longitude (DD) | ~17 chars (40.7484,-73.9857) | Numeric | Global |
| MGRS (10-digit) | ~15 chars (18TWL8453306781) | Alphanumeric | Global |
| Plus Code (10-char) | 11 chars (87G7PXQ4+4W) | Alphanumeric | Global |
| Plus Code short | 7 chars + city (Q4+4W NYC) | Alphanumeric + context | Global |
| Geohash (precision 8) | 8 chars (dr5regw3) | Alphanumeric | Global |
| what3words | 3 words (///daring.lion.race) | Words | Global |
The trade-offs:
- Lat/lon: maximally precise, computable, requires ~17 chars including decimals.
- Plus Codes: deterministic, open source, shorter than lat/lon for similar precision.
- MGRS: deterministic, established (military and emergency-services adoption); see /learn/mgrs-explained.
- Geohash: deterministic, open, sortable lexically.
- what3words: word-based, more memorable, but proprietary (see /learn/what3words-explained).
Real-world adoption
Plus Codes have been adopted in several specific contexts:
Kolkata Postal Service (India)
In 2018, the Kolkata postal authority began using Plus Codes as an alternative to formal street addresses for unaddressed locations. Slums, informal settlements, and rural areas without registered addresses can use the Plus Code on a mailing label, and postal carriers navigate via Google Maps. The system has since expanded to other Indian cities.
Several African countries
The Universal Postal Union has supported Plus Codes as a partial solution to global addressing. Cape Verde, Mauritius, Eswatini, and parts of Kenya, Nigeria, and others have piloted or adopted Plus Codes for postal addressing.
Disaster response
Emergency response organizations use Plus Codes to mark locations in post-disaster contexts where street addresses may be destroyed or never existed (post- earthquake areas, refugee camps).
Wildlife and conservation
Some wildlife-tracking projects use Plus Codes to identify sample-collection or observation sites in remote areas without conventional landmarks.
Google Maps integration
Since 2018, Google Maps displays the Plus Code for any location in the “Location details” panel. Searching for a Plus Code navigates to that location. Maps' integration has driven most consumer awareness.
What Plus Codes are not
A few clarifications:
- Not proprietary: Plus Codes are open source; you can implement an encoder/decoder yourself. The reference implementation is on GitHub.
- Not a service: there's no API call required to use Plus Codes. The encoding is purely computational from lat/lon.
- Not a database: Plus Codes don't store anything; they're a deterministic encoding.
- Not a coordinate system in the geodesy sense: Plus Codes encode WGS 84 latitude/longitude, so the underlying datum is WGS 84 (see /learn/wgs84-explained). They're not a separate CRS.
Limitations
Cell boundaries: a building straddling two Plus Code cells may have two different codes for two doors. Cells are not aligned with building footprints.
No semantic meaning: a Plus Code doesn't tell you what's at the location. Two adjacent Plus Codes might be a coffee shop and a parking garage; you need external data to know which.
Pronunciation: while Plus Codes use a curated
alphabet, certain pronunciation challenges remain (e.g.,
distinguishing M and N over a noisy phone). Less
acute than digit-string formats but worse than
word-based what3words.
Adoption is partial: Plus Codes are well known among geographically focused tools but rarely appear on non-Google services (Apple Maps, OpenStreetMap-based apps without specific support, navigation OEMs).
Localization: the alphabet is English-letter-based; adoption in non-Latin-script regions requires either romanization or device-side input methods. Plus Codes aren't fundamentally English-tied but the visual alphabet is.
Implementation
The reference implementations on GitHub (https://github.com/google/open-location-code) include:
- JavaScript (browser and Node.js)
- Python
- Java
- Go
- C
- C++
- Swift
- Rust (community-contributed)
The algorithm is short — typically <200 lines per language. Many third-party libraries also support Plus Codes (in Ruby, PHP, Kotlin, .NET, etc.).
For the Coordinately tools, a Plus Code converter is on the roadmap. For now, see the open-source reference implementations for embedding into your own systems.
Common misconceptions
“Plus Codes are proprietary to Google.” They're developed by Google but released under Apache 2.0 — anyone can implement, modify, and redistribute them. The reference is publicly hosted on GitHub. Google doesn't charge for use or maintain any registry.
“A Plus Code is a global postal address.” A Plus Code identifies a 14 m × 14 m location square. It's a position, not an address — there's no implication of street, building name, or unit number. Postal services that use Plus Codes pair them with delivery information (recipient name, etc.).
“Plus Codes work everywhere.” They identify any point on the Earth's surface, including oceans, deserts, and polar regions. The codes work — but whether postal or emergency services will actually go there is a separate question.
“Plus Codes replace addresses.” In some contexts they do (Kolkata postal service uses them as primary). In most contexts they supplement traditional addresses (Google Maps shows both). The replacement debate is ongoing and varies by region.
“Plus Codes are MGRS.” They're different. MGRS (see /learn/mgrs-explained) is a military grid system based on UTM projection zones. Plus Codes use latitude/longitude directly with a different alphabet and grid. The two systems target different use cases; both are deterministic and open.
“The + is a delimiter you can change.”
The + is literal and always appears between the 8th
and 9th characters in codes of 8+ length. It's
part of the specification, not a stylistic choice.
“Plus Code precision is fixed at 14 m.” The standard form is 10 characters / ~14 m, but you can request 8-character (~275 m) or 11-character (~3.5 m) precision. Choose precision based on use case; addresses typically use 10 chars.
“A shortened Plus Code is enough by itself.”
A shortened code (e.g., G8F+6X) is only meaningful
with reference context (e.g., “Mountain
View”). The full 10-character form is required
for global unambiguity.
“Plus Codes are case-sensitive.” They're case-insensitive by convention. The reference alphabet is uppercase but parsers accept lowercase. Style guides typically display uppercase for clarity.
Related
- Coordinate Formats Explained— The pillar — Plus Codes is one of six common formats
- What Is Latitude and Longitude?— The angular coordinates Plus Codes encodes
- What Is Geocoding?— How Plus Codes fit into the broader geocoding picture
- Address Standardization— Why structured addresses matter (and where Plus Codes fit)
- Methodology— How content is sourced and verified
Frequently asked questions
What is a Plus Code?
A Plus Code (formally Open Location Code, OLC) is a short alphanumeric identifier for a location on Earth, developed by Google in 2014 and released as open source under the Apache 2.0 license. A full Plus Code uses 10 characters plus a literal '+' separator — for example, 8FVC9G8F+6X identifies a ~14 m × 14 m square in Mountain View, California. The 20-character alphabet (23456789CFGHJMPQRVWX) excludes letters easily confused with digits (0/O, 1/I/l, etc.) and certain ambiguous letter pairs. Plus Codes can be calculated from latitude/longitude using a deterministic algorithm — no central registry is needed.
How precise is a Plus Code?
Precision depends on length. A 4-character code (e.g., '8FVC') identifies a ~110 km × 110 km grid (degree-level). 6 characters (~5 km), 8 characters (~250 m), 10 characters (~14 m, the 'address' default), and an 11-character extended form (~3.5 m). The '+' separator always appears between the 8th and 9th characters in the full form. For human display, the 10-character form ('8FVC9G8F+6X') is the standard 'address' precision. Extended 11-character forms are available where finer precision is needed (e.g., differentiating apartments in a building).
Can Plus Codes be shortened?
Yes. When the rough location is known (e.g., 'Mountain View, California'), the first 4 characters can be dropped, giving a 6-character short form (e.g., 'G8F+6X Mountain View'). Plus Codes shorten gracefully — the algorithm specifies how to drop characters and how the recipient recombines the short code with the reference location. Shortened codes can be 8 or 6 or 4 characters depending on context. The trade-off: shorter codes require known context; the full code is unambiguous globally.
Why was Plus Codes invented?
Approximately 4 billion people worldwide don't have a formal street address — particularly in informal settlements, rural areas of low-income countries, and remote regions. Without an address, people can't easily receive mail, register for services, get emergency response, or be located by delivery drivers. Traditional latitude/longitude works but is hard to remember and dictate. Plus Codes were designed to provide a short, memorizable, computable identifier that works for any location on Earth, including unaddressed areas. The system is open source (no proprietary dependency) and works offline (deterministic algorithm). Real-world adoption has been most significant in India (Kolkata postal service), several African countries, and disaster-response contexts.
How does Google Maps use Plus Codes?
Google Maps has displayed Plus Codes since 2018. For any location dropped pin or business listing, Maps shows the Plus Code in the location details. Searching for a Plus Code in Maps navigates to that location. Maps also exposes the Plus Code via the share menu. The integration helped popularize the system but is not a dependency — Plus Codes are an open standard that any application can implement. Other adopters include OpenStreetMap (some renderers), Waze, and various NGO mapping tools.
Sources
- Google — Open Location Code (Plus Codes) — official GitHub repository with algorithm spec and reference implementations · https://github.com/google/open-location-code · Accessed .
- Plus.codes — Plus Codes — official documentation site · https://plus.codes/ · Accessed .
- Google — Google Maps Help — Find and share locations with Plus Codes · https://support.google.com/maps/answer/7047426 · Accessed .
- Universal Postal Union — UPU — Addressing the World: an Address for Everyone (white paper) · https://www.upu.int/ · Accessed .
Cite this article
APA format:
Steve K. (2026). Plus Codes Explained. Coordinately. https://coordinately.org/learn/plus-codes-explained
BibTeX:
@misc{coordinately_pluscodesexplained_2026,
author = {K., Steve},
title = {Plus Codes Explained},
year = {2026},
publisher = {Coordinately},
url = {https://coordinately.org/learn/plus-codes-explained},
note = {Accessed: 2026-06-05}
}