ST_GEOHASHVALUE 純量函數
ST_GEOHASHVALUE 純量函數會採用 ST_POINT 物件及深度作為輸入參數,並傳回一個數字,代表指定點幾何佈置在指定深度的 geohash。
geohash 是用來唯一識別特定區域的數字。 geohash 演算法將地球分成稱為 Cell 的區域,並將每一個 Cell 中心的緯度和經度轉換成唯一識別它的數字。 每一個資料格的大小由深度值決定。 深度值越小,資料格大小越大。
- 點幾何佈置
- 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
