Open Location Code
![]() | This article's use of external links may not follow Justapedia's policies or guidelines. (October 2021) |
The Open Location Code (OLC) is a geocode based in a system of regular grids for identifying an area anywhere on the Earth.[1] It was developed at Google's Zürich engineering office,[2] and released late October 2014.[3] Location codes created by the OLC system are referred to as "plus codes".
Open Location Code is a way of encoding location into a form that is easier to use than showing coordinates in the usual form of latitude and longitude. Plus codes are designed to be used like street addresses, and may be especially useful in places where there is no formal system to identify buildings, such as street names, house numbers, and post codes.[4]
Plus codes are derived from latitude and longitude coordinates, so they already exist everywhere.[5] They are similar in length to a telephone number – 849VCWC8+R9, for example – but can often be shortened to only four or six digits when combined with a locality (CWC8+R9, Mountain View). Locations close to each other have similar codes. They can be encoded or decoded offline. The character set avoids similar looking characters, to reduce confusion and errors, and avoids vowels to make it unlikely that a code spells existing words. Plus codes are not case-sensitive, and can therefore be easily exchanged over the phone.[6]
Since August 2015, Google Maps supports plus codes in its search engine.[7] The algorithm is licensed under the Apache License 2.0.[8] and available on GitHub.[9]
Google has shown practical usage of plus codes for addressing purposes in Cape Verde,[10] parts of Kolkata,[11] and the Navajo Nation.[12] Since the COVID-19 pandemic the usage of Plus Codes as government recognized identification of housing in India has grown significantly[13].
Specification
The Open Location Code system[14] is based on latitudes and longitudes in WGS84 coordinates. Each code describes an area bounded by two parallels and two meridians out of a fixed grid, identified by the South-West corner and its size. The largest grid has blocks of 20 by 20 degrees (9 rows and 18 columns), and is divided in 20 by 20 subblocks up to four times. From that level onwards division is in 5 by 4 subblocks. The table shows the various block sizes at their maximum near the equator. The block width decreases with distance from the equator.
Code length | 2 | 4 | 6 | 8 | + | 10 | 11 |
---|---|---|---|---|---|---|---|
Block size | 20° | 1° | 0.05° (3′) | 0.0025° (9″) | 0.000125° (0.45″) | ||
Approximately | 2200 km | 110 km | 5.5 km | 275 m | 14 m | 3.5 m |
The full grid uses offsets from the South Pole (–90°) and the antimeridian (–180°) expressed in base 20 representation. To avoid misreading or spelling objectionable words, the encoding excludes vowels and symbols that may be easily confused with each other. The following table shows the mapping.
Base 20 digit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Code digit | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | C | F | G | H | J | M | P | Q | R | V | W | X |
The code begins with up to five pairs of digits, each consisting of one digit representing latitude and one representing longitude. The biggest blocks have just two digits. After 8 digits, a plus sign "+" is inserted in the code as a delimiter to aid with visual parsing. After 10 digits at each subdivision, subblocks are coded in a single code digit as follows:
longitude → | ||||
---|---|---|---|---|
R | V | W | X | |
J | M | P | Q | |
C | F | G | H | |
6 | 7 | 8 | 9 | |
2 | 3 | 4 | 5 |
Areas larger than an 8-digit block can be specified by replacing an even number of trailing digits before the + sign with the digit 0, with nothing after the + sign.
Example
Consider, for example, zooming in on the Merlion (N 1.286785, E 103.854503) in Singapore. It lies in the block around the equator bounded by -10° South and +10° North, and between 100° and 120° East. It has offsets 80° from the South Pole, and 280° from the anti-meridian; or, 4 and 14 as first base-20 digits, coded as "6" and "P". Thus, the code is "6P". This may be padded as 6P000000+
Now, refine this block to a subblock between 1° and 2° N and 103° and 104° E. This adds 11° and 3° to the SW corner. So the base-20 coordinate codes added are "H" and "5". The result is padded to 6PH50000+.
After four further refinements, one lands on Merlion park as 6PH57VP3+PR.
The next step requires us to divide the square so far used, to refine the position into a 4-by-5 grid, and finding the cell to which the coordinates are pointing. This is the cell named "6". Therefore, the resulting Open Location Code is: 6PH57VP3+PR6.
Common usage and shortening
It is common to omit the first 4 characters from the code and add an approximate location, such as a city, state, or country. The above example, then, becomes 7VP3+PR6 Singapore. This is supported by apps like Google Maps, the example plus.codes website but also by non-Google apps. When no reference location is given, map applications may also use the device's location to disambiguate abbreviated codes. These short forms of Plus Codes can be used in lieu of a house number in a neighborhood.
A common misconception is that this shortening depends on black box information by Google. As the short code is always exactly the same as the last part of the full code, this is not the case: you can use any reference location that can be converted to the coordinates of a reference location. It is enough to navigate to the rough region given by the reference location and then just using the short code locally, thus completely doing away with the need of application support for that location.
References
- ^ "Plus codes". Plus.codes. Retrieved 3 November 2018.
- ^ "Open Location Code". Openlocationcode.com. Archived from the original on 1 March 2018.
- ^ See Open Location Code Github and Open Location Code forum.
- ^ The Open Location Code website provides an overview. The document "An Evaluation of Location Encoding Systems" provides a rationale.
- ^ Specification: "Open Location Code: An Open Source Standard for Addresses, Independent of Building Numbers And Street Names"
- ^ "Open Location Code: Addresses for everything, everywhere". Google-opensource.blogspot.ch. Retrieved 3 November 2018.
- ^ "Plus codes: A new way to help pinpoint places on the map". Google-latlong.blogspot.in. Retrieved 3 November 2018.
- ^ "google/open-location-code". GitHub.com. Retrieved 3 November 2018.
- ^ "google/open-location-code". GitHub.com. Retrieved 3 November 2018.
- ^ "Delivering mail where the streets have no name". Google Africa Blog. December 1, 2016.
- ^ "Plus Codes | Addressing in Kolkata" – via YouTube.
- ^ "The Navajo Nation is getting addresses, thanks to an open-source mapping program used in urban India". The Salt Lake Tribune. 2019-10-25.
- ^ "The Address of the Future". Reasons to be Cheerful. July 15, 2022.
- ^ "google/open-location-code". GitHub. Retrieved 3 November 2018.
External links
- No URL found. Please specify a URL here or add one to Wikidata. with a video explanation
- open-location-code on GitHub