ST_GEOHASHVALUE 純量函數

ST_GEOHASHVALUE 純量函數會採用 ST_POINT 物件及深度作為輸入參數,並傳回一個數字,代表指定點幾何佈置在指定深度的 geohash。

geohash 是用來唯一識別特定區域的數字。 geohash 演算法將地球分成稱為 Cell 的區域,並將每一個 Cell 中心的緯度和經度轉換成唯一識別它的數字。 每一個資料格的大小由深度值決定。 深度值越小,資料格大小越大。

讀取語法圖跳過視覺化語法圖 ST_GEOHASHVALUE (point_geometry,深度 (depth))
點幾何佈置
ST_POINT 類型的值,代表要計算 Geohash 的點幾何佈置。 如果指定的幾何佈置是空值或空的,則會傳回空值。
深度
1-45 範圍內的整數值,決定 geohash 資料格的大小。 下列清單包含其對應近似資料格大小的一些常用深度。
Geohash 深度 近似單元大小 說明 範例
45 .1 公里2 單點或位址 GPS-位置或房屋
28 3 公里2 小區域 城市街區
23 100 公里2 中型區域 福里斯特或萊克
18 3,000 公里2 大型區域 縣/市或郵遞區號區域
13 100,000 公里2 非常大的區域 國家或地區

應該使用相同深度來計算要比較的兩個幾何形狀的 Geohash 值,以進行有意義的比較。

函數的結果是 BIGINT。

範例

下列 SQL 陳述式會傳回深度 23 點幾何佈置的 Geohash 值:

CREATE TABLE EXAMPLE_POINTS (GEO_ID CHAR(5), GEO QSYS2.ST_POINT);

INSERT INTO EXAMPLE_POINTS VALUES 
  ('11111', QSYS2.ST_POINT(10, 10)),
  ('22222', QSYS2.ST_POINT(15, 15)),
  ('33333', QSYS2.ST_POINT(-10, -10));
                      
SELECT QSYS2.ST_GEOHASHVALUE(GEO, 23) AS GEOHASH FROM EXAMPLE_POINTS;

結果:


GEOHASH
-------------------
6935265249708736512
6975174223262121984
2288105687634411520