適用於:
Databricks SQL
Databricks Runtime 17.1 和更新版本
Important
這項功能目前處於 公開預覽版。
備註
這項功能不適用於 Databricks SQL Classic 倉儲。 若要深入瞭解 Databricks SQL 倉儲,請參閱 SQL 倉儲類型。
使用指定的長度比例,將輸入的 GEOMETRY 值的凹殼當作 GEOMETRY 值傳回。
Syntax
st_concavehull ( geoExpr, lengthRatioExpr[, allowHolesExpr])
Arguments
-
geoExpr:一個GEOMETRY值。 -
lengthRatio- 一個介於DOUBLE到0之間的1值(含兩端),代表用於計算凹殼長度比率的比例。 -
allowHoles- 選擇性BOOLEAN值,指出如果輸出幾何是面域,是否允許存在洞。 預設值為 false。
Returns
傳回一個 GEOMETRY 值,該值是根據指定的長度比例計算出的輸入 GEOMETRY 值的凹包體。 當第三個參數設為 true 時,如果是多邊形,產生的幾何形狀允許有洞。
輸出 GEOMETRY 值的 SRID 值等於輸入 GEOMETRY 值的 SRID 值。
如果長度比率不在 0 和 1 之間(包括 0 和 1),則傳回錯誤。
長度比率會根據輸入點之 Delaunay 三角中最短和最長邊緣之間的範圍來決定臨界值。 超過此臨界值的邊緣會從三角形中移除。 其餘三角形會定義凹凸船體。
對於面狀輸入幾何(多邊形或多重多邊形),演算法會使用限制的 Delaunay 三角劃分。 產生的凹殼會遵循輸入 GEOMETRY 值,並包括其原始多邊形。
Examples
> SELECT st_astext(st_concavehull(st_geomfromtext('MULTIPOINT(0 0,10 0,10 10,0 10,1 1,1 5,1 9,5 1,9 9,9 1,9 5,5 9)'), 1));
POLYGON((0 0,0 10,10 10,10 0,0 0))
> SELECT st_astext(st_concavehull(st_geomfromtext('MULTIPOINT(0 0,10 0,10 10,0 10,1 1,1 5,1 9,5 1,9 9,9 1,9 5,5 9)'), 0.8));
POLYGON((0 0,1 5,0 10,5 9,10 10,9 5,10 0,5 1,0 0))