Open Location Code ist eine Technologie, die eine Möglichkeit bietet, Standorte in einer Form zu kodieren, die einfacher zu verwenden ist als Breiten- und Längengrade. Die generierten Codes werden Pluscodes genannt, da sie sich dadurch auszeichnen, dass sie ein „+“-Zeichen enthalten.
Die Technologie soll Codes erzeugen, die als Ersatz für Straßenadressen verwendet werden können, insbesondere an Orten, an denen Gebäude nicht nummeriert oder Straßen nicht benannt sind.
Pluscodes repräsentieren eine Fläche, keinen Punkt. Wenn einem Code Ziffern hinzugefügt werden, verkleinert sich der Bereich, sodass ein langer Code präziser ist als ein kurzer Code.
Ähnliche Codes liegen näher beieinander als unterschiedliche Codes.
Ein Standort kann in einen Code umgewandelt werden, und dieser (vollständige) Code kann vollständig offline wieder in einen Standort umgewandelt werden, ohne dass Datentabellen nachgeschlagen werden müssen oder Online-Dienste erforderlich sind.
Codes können zur einfacheren Kommunikation gekürzt werden. In diesem Fall können sie regional oder in Kombination mit einem Referenzstandort verwendet werden, den alle Benutzer dieses Kurzcodes kennen müssen. Wenn der Referenzstandort in Form eines Standortnamens angegeben wird, kann die Verwendung eines Geokodierungsdienstes erforderlich sein, um den ursprünglichen Standort wiederherzustellen.
Algorithmen zu
sind öffentlich zugänglich und können uneingeschränkt genutzt werden. Geokodierungsdienste sind nicht Teil der Open Location Code-Technologie.
Codes bestehen aus einer Ziffernfolge, die aus einer Reihe von 20 Ziffern ausgewählt wird. Die Ziffern im Code wechseln zwischen Breiten- und Längengrad. Die ersten vier Ziffern beschreiben einen Bereich von einem Breitengrad mal einem Längengrad, ausgerichtet nach Grad. Durch das Hinzufügen von zwei weiteren Ziffern zum Code wird die Fläche auf 1/20 Grad um 1/20 Grad innerhalb der vorherigen Fläche reduziert. Und so weiter – jedes Ziffernpaar reduziert die Fläche auf 1/400stel der vorherigen Fläche.
Beispielsweise befinden sich die Parlamentsgebäude in Nairobi, Kenia, unter der Adresse 6GCRPR6C+24. 6GCR ist das Gebiet von 2°S 36°E bis 1°S 37°E. PR6C+24 ist ein 14 mal 14 Meter großes Gebiet innerhalb von 6GCR.
Nach acht Ziffern wird ein „+“-Zeichen verwendet, um den Code in zwei Teile zu unterteilen und Codes von Postleitzahlen zu unterscheiden.
Es wird Stellen geben, an denen ein 10-stelliger Code nicht genau genug ist, aber eine Verfeinerung um den Faktor 20 ist i) unnötig präzise und ii) erfordert eine Erweiterung des Codes um zwei Ziffern. Stattdessen wird der Bereich nach 10 Ziffern in ein 4x5-Raster und eine einzelne Ziffer unterteilt, die zur Identifizierung des Rasterquadrats dient. Durch einen einzelnen Rasterverfeinerungsschritt wird die Fläche auf ca. 3,5 x 2,8 Meter reduziert.
Codes können relativ zu einem Standort gekürzt werden. Dadurch wird die Anzahl der Ziffern reduziert, die man sich merken muss, indem anhand eines Standorts ein ungefährer Bereich identifiziert und dann der nächstgelegene passende Code generiert wird. Wenn ein Code gekürzt wird, fallen, wenn möglich, vier oder mehr Ziffern am Anfang des Codes weg. Der Grad der Kürzung eines Codes hängt von der Nähe des Referenzortes ab.
Wenn der Referenzstandort von einem Ortsnamen abgeleitet wird, hängt dies von der Genauigkeit des Geokodierungsdienstes ab. Während ein Dienst „Zurich“ möglicherweise in die Nähe des Google-Büros platziert, kann ein anderer es um hundert Meter oder mehr verschieben, und dies könnte ausreichen, um die Wiederherstellung des ursprünglichen Codes zu verhindern. Anstelle eines großen Stadt-Features zum Generieren des Referenzstandorts ist es besser, kleinere Nachbarschafts-Features zu verwenden, deren Geokodierungsergebnisse nicht so stark variieren.
Richtlinien zum Kürzen von Codes finden Sie im Wiki.
Das Wiederherstellen verkürzter Codes funktioniert durch die Bereitstellung des Funktionscodes und eines Referenzorts. Dies muss nicht derselbe sein wie der Ort, an dem der Code gekürzt wurde, er muss sich jedoch in der Nähe befinden. Verkürzte Codes enthalten immer das Zeichen „+“, sodass die fehlende Komponente einfacher berechnet werden kann.
Die Unterverzeichnisse enthalten Beispielimplementierungen und Tests für verschiedene Sprachen. Jede Implementierung stellt die folgenden Funktionen bereit: