# Open Location Code

Der Open Location Code (OLC) oder Plus Code ist ein Kodiersystem für geographische Koordinaten. OLC lässt sich einfach in Gradnetz-Koordinaten umrechnen und umgekehrt, ist jedoch gegenüber der konventionellen Schreibweise in Winkelgraden bei gleicher Genauigkeit kürzer, leichter zu übermitteln und dennoch eindeutig.
So gibt der zehnstellige OLC-Code 9F4MG972+R2 die Koordinaten der Berliner Siegessäule mit einer Genauigkeit von 14 Metern an. Eine entsprechend präzise dezimale Angabe benötigt 13 Ziffern und zwei Vorzeichen.
Das Pluszeichen („+“), das nach dem achten Zeichen zwingend folgt, weist die Zeichenkette eindeutig als OLC aus und soll die Lesbarkeit erleichtern. Es ist als Stellenmarkierung wichtig, wenn am Anfang und am Ende Zeichen weglassen werden, etwa bei bekanntem Umkreis oder Beschränkung auf geringere Genauigkeit. Die Zeichen werden (bis zum 10. Zeichen) paarweise ausgewertet. Im gegebenen Beispiel stehen 9, 4, G, 7 und R für die geographische Breite und die jeweils dahinter stehenden F, M, 9, 2 und nochmals 2 für die geographische Länge, jeweils in zunehmender Präzision.
OLC wurde in einem mit Google in Verbindung stehenden Ingenieurbüro in Zürich entwickelt und Ende 2014 veröffentlicht.

## Bedeutung

Von proprietären Referenzierungssystemen wie beispielsweise MapCode oder what3words unterscheidet sich OLC darin, dass er sich nach einfachen und allgemein verfügbaren Regeln in geographische Koordinaten und umgekehrt umrechnen lässt, während beispielsweise what3words eine willkürliche Zuordnung nutzt, die nur über vom Anbieter gegebene Schnittstellen ermittelt und ausgewertet werden kann bzw. darf. In OLC haben benachbarte Orte in der Regel ähnliche Codes, was beispielsweise bei what3words aus Gründen der Eindeutigkeit bewusst ausgeschlossen wird.
Der Nachteil liegt darin, dass eine OLC-Angabe im Gegensatz etwa zu what3words nicht einprägsam ist.
Die ersten zwei Zeichenpaare (im Beispiel oben 9F4M) referenzieren ein Viereck von 1° Kantenlänge in Breite und Länge, was am Äquator etwa 110 km entspricht. Diese grobe Angabe nennt man auch Area Code. Mit zehn Zeichen lässt sich ein Grundstück, mit elf Zeichen ein bestimmter Eingang eines größeren Hauses eindeutig referenzieren. Das macht den OLC nutzbar für die genaue Bezeichnung von Wohnplätzen, die keine Postadressen haben.

### Verkürzte Angabe

In der Praxis kann man die ersten zwei Zahlenpaare, den Area Code, durch die nachgestellte Angabe des Ortes ersetzen, in dem das Ziel liegt. Das oben gegebene Beispiel der Siegessäule lautet dann G972+R2 Berlin, was sich leichter merken lässt. Zur Auswertung muss dann der passende Area Code vorangestellt werden. Die Suchfunktion von Google Maps wertet eine solche Eingabe korrekt aus.

## Spezifikation

OLC ist ein Gradnetz-basiertes System. Eine Angabe in OLC bezeichnet stets die südwestliche Ecke eines sphärischen Rechtecks, das durch zwei Breitenkreise und zwei Meridiane begrenzt ist. Die Größe dieses Gebiets (in Grad) hängt dabei von der Länge des Codes ab.
Die ersten zehn Zeichen eines Plus-Codes bilden fünf Zeichenpaare. Dabei bezeichnet jedes Zeichen nach folgendem Schema einen Zahlenwert von 0 bis 19. Um Hörfehler oder eventuell anstößig klingende Zeichenfolgen zu vermeiden, werden Vokale und ähnlich klingende Konsonanten nicht verwendet. Daher werden auch die Ziffer 1 und der Buchstabe I ausgelassen.
| Codezeichen | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | C | F | G | H | J | M | P | Q | R | V | W | X |
| Zahlenwert | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Zusätzlich existiert das Codezeichen 0 (Null). Es wird nicht ausgewertet und dient nur als Füllzeichen bei unbekannten oder unwesentlichen Teilwerten.

### 9×18-Grundraster

Das erste Zeichenpaar bezieht sich auf ein Raster, das die gesamte Erdoberfläche nach Breite in 9 Sektoren und nach Länge in 18 Sektoren unterteilt, wodurch sich 162 Blöcke mit einer Kantenlänge von je 20 Grad ergeben. Das erste Zeichen bezeichnet den Breitensektor (Zeichen 2 bis C), das zweite den Längensektor (Zeichen 2 bis V). Um Vorzeichen (Nord/Süd bei Breite, West/Ost bei Länge) zu vermeiden, werden die Breiten-Sektoren vom Südpol an nordwärts gezählt, die Längen-Sektoren vom Antimeridian (180° Länge) an ostwärts.

### 20×20-Subraster

Jedes der folgenden vier Zeichenpaare unterteilt den zuvor referenzierten Block in der gleichen Weise weiter in 20 × 20 Subblöcke, ausgehend von der südwestlichen Ecke, das jeweils erste Zeichen die Breite nach Norden, das zweite die Länge nach Osten.
Nach dem achten Zeichen wird zur besseren Übersicht ein Pluszeichen eingefügt, das keine inhaltliche Bedeutung hat, aber nicht fehlen darf.
Nach fünf Zeichenpaaren (also zwei Zeichen nach dem Pluszeichen) ist ein Subblock mit $^1$⁄$_{8000}$ Grad Seitenlänge referenziert, am Äquator entspricht das etwa 14 Metern:
| Zeichenpaar | 1/2 | 3/4 | 5/6 | 7/8 | + | 9/10 |
| Kantenlänge in Grad | 20° | 1° | $\textstyle {\frac {1}{20}}$° (= 3′) | $\textstyle {\frac {1}{400}}$° (= 9″) | | $\textstyle {\frac {1}{8000}}$° (= 0,45″) |
| Tatsächliche Kantenlänge am Äquator | 2200 km | 110 km | 5,5 km | 275 m | | 14 m |
Bis hierhin ist der Plus-Code mathematisch gesehen ein Stellenwertsystem zur Basis 20 mit verschränkten Stellen für zwei unabhängige Werte.

### 5×4-Subraster

Weitere Zeichen nach dem fünften Zeichenpaar unterteilen den zuvor referenzierten Block nach folgendem Schema in 5 × 4 Subblöcke, wobei nun jedes einzelne Zeichen für einen Subblock steht. Dadurch werden die Verfeinerungsschritte kleiner und ermöglichen „genaueres Zielen“.
| | West → Ost | West → Ost | West → Ost | West → Ost |
| Nord ↑ Süd | R | V | W | X |
| Nord ↑ Süd | J | M | P | Q |
| Nord ↑ Süd | C | F | G | H |
| Nord ↑ Süd | 6 | 7 | 8 | 9 |
| Nord ↑ Süd | 2 | 3 | 4 | 5 |
Insgesamt sind fünf dieser Unterteilungen möglich, wobei das insgesamt 15. Zeichen einen Subblock mit nur wenigen Millimetern Seitenlänge bezeichnet (am Äquator rund 14 mm).

## Beispiel

Der Südturm des Kölner Doms (geographische Koordinaten: 50.94114° Nord, 6.95728° Ost) liegt im Rechteck 9F des gröbsten Rasters, das sich von 50° bis 70° nördlicher Breite und 0° bis 20° östlicher Länge erstreckt. Die südwestliche Ecke dieses Rechtecks liegt im Ärmelkanal, die nordöstliche im nord-norwegischen Ullsfjord. Mit weiteren Zahlenpaaren wird dieses Rechteck weiter unterteilt:
| Plus-Code | Breite Bezugspunkt | Länge Bezugspunkt | Kantenlänge in Grad | tatsächliche Größe (Süd–Nord × West–Ost) |
| 9F280000+ | 50° | 6° | 1° | 110 km × 70 km (Area Code) |
| 9F28WX00+ | 50,9° | 6,95° | $^1$⁄$_{20}$ | 5,56 km × 3,5 km |
| 9F28WXR4+ | 50,94° | 6,955° | $^1$⁄$_{400}$ | 279 m × 176 m |
| 9F28WXR4+FW | 50,941125° | 6,95725° | $^1$⁄$_{8000}$ | 14 m × 9 m |
| 9F28WXR4+FW2 | Subblock 2 (südwestliche Ecke) | Subblock 2 (südwestliche Ecke) | $^1$⁄$_{40.000}$ × $^1$⁄$_{32.000}$ | 2,8 m × 2,25 m |
Leere Stellen vor dem Pluszeichen können mit Nullen aufgefüllt werden. Nullen im Code werden nicht ausgewertet und dienen als Füllzeichen (der konkrete Wert Null wird durch 2 abgebildet).

## Umrechnung

Zur Umrechnung eines zehnstelligen Plus-Codes in Winkelgrade müssen nur die Zeichen für Breite (die ungeradzahligen) sowie Länge (die geradzahligen) jeweils nach der Tabelle oben in Zahlenwerte umgewandelt, mit dem entsprechenden 20er-Vielfachen eines Grades multipliziert und aufaddiert werden.
Breitengrad des Kölner Doms im oben gegebenen Beispiel:
| OLC-Zeichen | 9 | 2 | W | R | + | F |
| ≙ Zahlenwert | 7 | 0 | 18 | 16 | | 9 |
| · Multiplikator | 20° | 1° | $\textstyle {\frac {1}{20}}$° | $\textstyle {\frac {1}{400}}$° | | $\textstyle {\frac {1}{8000}}$° |
| = Produkt | 140° | 0° | 0,9° | 0,04° | | 0,001125° |
| Summe | 140,941125° | 140,941125° | 140,941125° | 140,941125° | 140,941125° | 140,941125° |
Von dieser Breite werden anschließend 90° (von der Länge 180°) subtrahiert, um die auf den Südpol (bzw. Antimeridian) bezogenen Werte auf den Äquator (bzw. Nullmeridian) umzurechnen. Negative Werte bezeichnen dann südliche Breite bzw. westliche Länge.