ST_GEOHASHCOVEREXTEND 表格函數

ST_GEOHASHCOVEREXTEND 表格函數會以幾何佈置物件、深度及距離作為輸入參數,並傳回一個表格,其中有一個直欄包含指定幾何佈置在指定深度的 Geohash 涵蓋範圍,加上圍繞指定幾何佈置的緩衝區。

geohash 涵蓋範圍是完整涵蓋給定幾何形狀所需的 Geohash 資料格集。 較大的深度對應於較小的資料格,因此會產生更精確的涵蓋範圍,以及幾何形狀之外的 Geohash 涵蓋範圍的面積較少。 不過,當資料格較小時,則需要更多資料格。

緩衝區是幾何形狀,以指定的距離包圍 Geohash 涵蓋範圍。

圖 1. Geohash 延伸,其中距離小於一個資料格的側邊長度
Geohash 延伸
圖 2. Geohash 延伸,其中距離大於一個資料格的側邊長度
大型 Geohash 延伸
讀取語法圖跳過視覺化語法圖ST_GEOHASHCOVEREXTEND(幾何佈置 (geometry),深度 (depth),距離)
幾何佈置
St_GEOMETRY 類型的值或它的其中一個子類型,代表要計算 Geohash 涵蓋值的幾何形狀。 如果指定的幾何佈置是 NULL 或空白,則會傳回 Geohash 值為 NULL 的一列。
深度
1-45 範圍內的整數值,決定 Geohash 資料格的大小。 下表列出一些最常用的深度,其對應的近似儲存格大小。
Geohash 深度 近似單元大小 說明 範例
45 .1 公里2 單點或位址 GPS-位置或房屋
28 3 公里2 小區域 城市街區
23 100 公里2 中型區域 福里斯特或萊克
18 3,000 公里2 大型區域 縣/市或郵遞區號區域
13 100,000 公里2 非常大的區域 國家或地區

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

距離
與決定緩衝區大小的輸入單元邊緣的距離。 值不能是負數或空值。 度量單位是計量。
函數的結果是一個表格,其中包含下列表格中所顯示格式的列。 直欄可為空值。
表 1. ST_GEOHASHCOVEREXTEND 的結果表格格式
直欄名稱 資料類型 內含
GeoHASH BIGINT 在所有維度中延伸指定距離之後,指定點幾何形狀在指定深度的 Geohash 值。

附註

此函數傳回的列數不能超過 10,000。 如需選取適當深度值的相關資訊,請參閱 Geohash 和 Geohash 涵蓋範圍

範例

下列 SQL 陳述式會傳回 Geohash 值,這些值涵蓋深度 18 且緩衝區為 25 公里的指定多邊形幾何形狀:

SELECT geohash 
FROM TABLE(
  QSYS2.ST_GEOHASHCOVEREXTEND(QSYS2.ST_POLYGON('polygon((3 3, 3 5, 4 4, 3 3))'), 
                              18, 
                              25000));

結果:


GEOHASH
-------------------
6919393799361789952 
6920132671175655424 
6920906727361609728 
6920167855547744256 
6920941911733698560 
6921012280477876224 
6920273408664010752 
6921047464849965056 
6921117833594142720 
6920308593036099584 
6921082649222053888 
6921153017966231552 
6921364124198764544 
6920695621129076736 
6921469677315031040 
6921540046059208704 
6920730805501165568 
6921504861687119872 
6921575230431297536 
6920836358617432064 
6921610414803386368