Geohash
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:
GH_NEIGHBORS | GH_EXPAND |
---|---|
northwest | northwest |
north | north |
northeast | northeast |
west | west |
east | center |
southwest | east |
south | southwest |
southeast | south |
- | southeast |
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.
Examples:
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 |
+-----------+