Geohash Functions

Studio provides a set of functions to manipulate, process, and derive new Geohash spatial indices.

Function Description
geohashToBounds(geohash, closed?) Returns a geojson containing the SW/NE lat/lng bounds of specified Geohash.
geohashToGeo(geohash) Returns a [lat, lng] pair representing the approximate center of the Geohash cell at reasonable precision.
geohashToNeighbor(geohash, direction) Returns the adjacent Geohash cell in the given direction (N, S, E, W).
geohashToNeighbors(geohash) Returns a Geohash array containing the 8 adjacent cells to specified Geohash.
geohashIsValid(geohash) Returns true if the given Geohash string is valid, or false if the Geohash string is invalid.
geoToGeohash(lat, lng, precision?)
geoToGeohash([lat, lng], precision?)
Encodes a lat/lng pair to Geohash, either to specified precision or to an automatically evaluated precision.

geohashToBounds

Returns a geojson containing the SW/NE lat/lng bounds of specified Geohash.

Method

JavaScript

geohashToBounds(geohash: string, closed?: boolean): geojson;

Parameters

Parameter Type Description
geohash string Geohash cell from which to derive bounds.
closed bool If true, the first vertex will be duplicated at the end.

Returns

Returns a geojson polygon representing the bounds of the Geohash.

Example

For this example, we will call geohashtoBounds() on a single Geohash cell. In Studio, users are expected to call functions on columns.

Create a geojson polygon representing the bounds of Geohash cell 'u120fw'.

JavaScript

geohashToBounds("u120fxw");

Returns the following geojson object:

JSON

{
  "type": "Feature",
  "properties": null,
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [0.10986328125, 52.196044921875],
        [0.10986328125, 52.2015380859375],
        [0.120849609375, 52.2015380859375],
        [0.120849609375, 52.196044921875],
        [0.10986328125, 52.196044921875]
      ]
    ]
  }
}

geohashToGeo

Derive a [lat, lng] pair from the approximate center of the Geohash cell at reasonable precision.

Method

JavaScript

geohashToGeo(geohash: string): number[];

Parameters

Parameter Type Description
geohash string Geohash cell from which to derive the approximate center point.

Returns

Returns a [lat, lng] pair representing the approximate center of the Geohash cell at reasonable precision.

Example

For this example, we will call geohashToGeo() on a single Geohash cell. In Studio, users are expected to call functions on columns.

Find the center of Geohash cell 'u120fxw'.

JavaScript

geoHashToGeo("u120fxw"); // => `[52.205, 0.1188]`.

geohashToNeighbor

Find the adjacent Geohash cell in the given direction (N, S, E, W).

Method

JavaScript

geohashToNeighbor(geohash: string, direction: string): string;

Parameters

Parameter Type Description
geohash string Geohash cell from which to find the specified neighbor.
direction string Direction to search from the specified Geohash cell ('N'/'S'/'E'/'W').

Returns

Returns the adjacent Geohash cell in the given direction (N, S, E, W).

Example

For this example, we will call geohashToNeighbor() on a single Geohash cell. In Studio, users are expected to call functions on columns.

Find the northern neighbor of Geohash cell '9q592mxz37202'.

JavaScript

geohashToNeighbor("9q592mxz37202", "N"); // => `'9q592mxz37208'`

geohashToNeighbors

Find the 8 adjacent cells to specified Geohash.

Method

JavaScript

geohashToNeighbors(geohash: string): string[];

Parameters

Parameter Type Description
geohash string Geohash cell from which to find adjacent neighbors.

Returns

Returns a Geohash array containing the 8 adjacent cells to specified Geohash.

Example

For this example, we will call geohashToNeighbors() on a single Geohash cell. In Studio, users are expected to call functions on columns.

Find all adjacent neighbors of Geohash cell 'dp3w'.

JavaScript

geohashToNeighbors("dp3w"); // => `[dp3x,dp3z,dp3y,dp3v,dp3t,dp3m,dp3q,dp3r]`

geohashIsValid

Determine whether the given Geohash cell is valid.

Method

JavaScript

geohashIsValid(value: string): boolean;

Parameters

Parameter Type Description
value string Value to test for Geohash validity.

Returns

Returns true if the value can be a Geohash, or false if it is not a Geohash.

Example

For these examples, we will call geohashIsValid() on a single Geohash cell. In Studio, users are expected to call functions on columns.

JavaScript

geohashIsValid(`u120fw`); // => true

JavaScript

geohashIsValid(`i120fw`); // => false

geoToGeohash

Encodes a lat/lng pair to Geohash, either to specified precision or to automatically evaluated precision.

Method

JavaScript

geoToGeohash(lngLat: number[], precision?: number): string;

Parameters

Parameter Type Description
lng number Longitude in degrees.
lat number Latitude in degrees.
lngLat number[] Longitude, latitude pair in an array.
precision number Optional. Number of characters in resulting geohash.

Returns

Returns a Geohash cell from the supplied latitude/longitude coordinates.

Example

For this example, we will call geoToGeohash() on a single pair of coordinates. In Studio, users are expected to call functions on columns.

Find the Geohash cell for coordinates [0.119, 52.205] at resolution 7 (seven Geohash digits):

JavaScript

geoToGeohash([0.119, 52.205], 7); // => 'u120fxw'

Find the Geohash cell for coordinate pair 0.119, 52.205 at resolution 7 (seven Geohash digits). This is the same function as the one above, except lng and lat are in separate columns.

JavaScript

geoToGeohash(0.119, 52.205, 7); // => 'u120fxw'

Find the Geohash cell for coordinates [0.119, 52.205] at an automatic resolution:

JavaScript

geoToGeohash([0.119, 52.205]); // => 'u120fxwshvkg'