Geohash is a convenient way to encode a location into a string representation with less precision. In BigObject, geohash() encodes a location into an integer, which can be converted into the string representation via st_geohash().
The GH_NEIGHBORS table operator generates neighboring Geohash codes around a Geohash or location. The GH_EXPAND includes the center code together with GH_NEIGHBORS.
The order of rows generated by GH_NEIGHBORS or GH_EXPAND are as follows:
The syntax for generating neighbors from location data is:
SELECT * FROM table GH_NEIGHBORS ( longitude, latitude [, precision ,] [AS col_name] )
Use the following statement to generate neighbors from Geohash numbers:
SELECT * FROM table GH_NEIGHBORS ( geohash_col [AS col_name] )
The syntax for GH_EXPAND table function is similar to GH_NEIGHBORS.
The Geohash string for Burj Khalifa tower is:
SELECT ST_GEOHASH(GEOHASH(lon, lat, 7)) AS gh FROM (SELECT 25.197222 AS lat, 55.274056 AS lon); +---------+ | gh | +---------+ | thrr3g1 | +---------+
To obtain the neighboring Geohash strings around Burj Khalifa tower:
SELECT st_geohash(nbr) AS neighbors FROM (SELECT 25.197222 AS lat, 55.274056 AS lon) GH_NEIGHBORS (lon, lat, 7 AS nbr); +-----------+ | neighbors | +-----------+ | thrr3g2 | | thrr3g3 | | thrr3g6 | | thrr3g0 | | thrr3g4 | | thrr3fb | | thrr3fc | | thrr3ff | +-----------+