# google/open-location-code

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/google-open-location-code).**

4,329 stars · 527 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/google/open-location-code
- Homepage: https://plus.codes
- awesome-repositories: https://awesome-repositories.com/repository/google-open-location-code.md

## Topics

`c` `cplusplus` `dart` `geo` `golang` `gps` `java` `javascript` `latitude` `longitude` `openlocationcode` `pluscode` `python` `ruby` `rust` `street-address`

## Description

Open Location Code is a geocoding library and toolset used to transform global latitude and longitude coordinates into standardized, human-readable alphanumeric digital addresses and back again. It functions as an offline location coding system that generates unique identifiers for any location on Earth, specifically providing digital addresses for areas where formal street addresses or postal systems are missing.

The system operates as a stateless algorithmic process, allowing coordinates to be encoded and decoded without the need for network access, internet connections, or external database lookup tables. It utilizes reference-based shortening to reduce the length of geographic identifiers by omitting common prefixes based on nearby reference points.

The library includes utilities for bidirectional geocode conversion and code manipulation. These capabilities cover the validation of location strings, the recovery of full codes from shortened versions, and the translation of coordinates into a hierarchical grid of alphanumeric characters.

## Tags

### Business & Productivity Software

- [Digital Addressing Systems](https://awesome-repositories.com/f/business-productivity-software/digital-addressing-systems.md) — Creates unique alphanumeric identifiers for locations that lack formal street addresses or postal systems.
- [Global Location Identifiers](https://awesome-repositories.com/f/business-productivity-software/global-location-identifiers.md) — Creates unique and precise digital identifiers for any location on Earth where street addresses are missing.
- [Geographic Identifier Management](https://awesome-repositories.com/f/business-productivity-software/geographic-identifier-management.md) — Reduces the length of geographic identifiers using local reference points to make addresses easier for humans to share.

### Scientific & Mathematical Computing

- [Geocode Decoders](https://awesome-repositories.com/f/scientific-mathematical-computing/geocode-decoders.md) — Open Location Code translates alphanumeric location codes into latitude and longitude coordinates without requiring a network connection. ([source](https://cdn.jsdelivr.net/gh/google/open-location-code@main/README.md))
- [Geographic Coordinate Encoders](https://awesome-repositories.com/f/scientific-mathematical-computing/geographic-coordinate-encoders.md) — Provides the core capability of encoding global coordinates into standardized alphanumeric digital addresses. ([source](https://github.com/google/open-location-code/blob/master/docs/olc_definition.adoc))
- [Coordinate-to-Code Encoders](https://awesome-repositories.com/f/scientific-mathematical-computing/geographic-coordinate-converters/coordinate-to-code-encoders.md) — Encodes global map coordinates into a standardized short-code format for use as digital addresses.
- [Spatial Partitioning Systems](https://awesome-repositories.com/f/scientific-mathematical-computing/spatial-partitioning-systems.md) — Divides the global map into a hierarchy of nested squares to map coordinates to alphanumeric characters.
- [Geographic Code Manipulators](https://awesome-repositories.com/f/scientific-mathematical-computing/geographic-code-manipulators.md) — Open Location Code reduces the length of a location code by using a nearby reference point to omit leading characters. ([source](https://cdn.jsdelivr.net/gh/google/open-location-code@main/README.md))

### Data & Databases

- [Geocoding Libraries](https://awesome-repositories.com/f/data-databases/geospatial-data-services/geocoding-libraries.md) — Provides a comprehensive library for converting latitude and longitude coordinates into short alphanumeric digital addresses and back.
- [Offline Geolocation Indexes](https://awesome-repositories.com/f/data-databases/local-data-engines/offline-geolocation-indexes.md) — Translates location codes back into coordinates locally without requiring an internet connection or external database.

### Programming Languages & Runtimes

- [Custom Alphabet Encodings](https://awesome-repositories.com/f/programming-languages-runtimes/character-encoding-utilities/custom-alphabet-encodings.md) — Implements a custom alphabet encoding to transform grid indices into concise, human-readable location strings.

### Software Engineering & Architecture

- [Stateless Algorithm Implementations](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/design-patterns/functional-design-patterns/pure-functional-logic-implementations/stateless-algorithm-implementations.md) — Implements mathematical formulas to calculate coordinates from strings without requiring any external state or database.
- [Bit-Shifting Arithmetic](https://awesome-repositories.com/f/software-engineering-architecture/integer-arithmetic/integer-bit-analyzers/bit-shifting-arithmetic.md) — Uses bit-shifting and binary logic to convert floating point coordinates into discrete grid cell identifiers.
- [Offline Geocoding Systems](https://awesome-repositories.com/f/software-engineering-architecture/offline-geocoding-systems.md) — Operates as a coordinate-to-code system without network access or external lookup tables to resolve geographic positions.
- [Reference-Based Identifiers](https://awesome-repositories.com/f/software-engineering-architecture/reference-based-identifiers.md) — Omits the common prefix of a location code by storing a nearby reference point for local recovery.

### User Interface & Experience

- [Spatial Precision Levels](https://awesome-repositories.com/f/user-interface-experience/data-grids/hierarchical-grids/spatial-precision-levels.md) — Nests smaller grid cells within larger ones to allow for varying levels of precision and zoom.

### Part of an Awesome List

- [Geocode Recovery](https://awesome-repositories.com/f/awesome-lists/devtools/url-shorteners/geocode-recovery.md) — Restores a full location code by combining a shortened version with a nearby reference location. ([source](https://cdn.jsdelivr.net/gh/google/open-location-code@main/README.md))

### Web Development

- [Geographic Code Validators](https://awesome-repositories.com/f/web-development/string-format-validators/geographic-code-validators.md) — Verifies whether a string is a valid sequence or a complete and well-formed location code.
