# Overview

A Geohash value corresponds to a specific area with pre-defined granularity and is widely used in identifying, representing and indexing geospatial objects. This GeohashRecord processor provides the ability to encode and decode Geohashes with desired format and precision.

### Formats supported

- BASE32: The most commonly used alphanumeric version. It is compact and more human-readable by discarding some letters(such as "a" and "o", "i" and "l") that might cause confusion.
- BINARY: This format is generated by directly interleaving latitude and longitude binary strings. The even bits in the binary strings correspond to the longitude, while the odd digits correspond to the latitude.
- LONG: Although this 64-bit number format is not human-readable, it can be calculated very fast and is more efficient.

### Precision supported

In ENCODE mode, users specify the desired precision level, which should be an integer number between 1 and 12. A greater level will generate a longer Geohash with higher precision.

In DECODE mode, users are not asked to provide a precision level because this information is contained in the length of Geohash values given.