st_concavehull 函数

适用于:检查标记为“是”的 Databricks SQL 检查标记为“是”是 Databricks Runtime 17.1 及更高版本

Important

此功能目前以公共预览版提供。

注释

此功能在 Databricks SQL 经典仓库上不可用。 若要详细了解 Databricks SQL 仓库,请参阅 SQL 仓库类型

使用指定的长度比率返回输入 GEOMETRY 值的凹凸外壳作为 GEOMETRY 值。

Syntax

st_concavehull ( geoExpr, lengthRatioExpr[, allowHolesExpr])

Arguments

  • geoExpr:一个 GEOMETRY 值。
  • lengthRatio- 介于DOUBLE0(含)之间的1值,表示用于计算凹体外壳的长度比率。
  • allowHoles - 一个可选 BOOLEAN 值,指示是否允许输出几何图形(如果多边形)有孔。 默认值为 false。

Returns

返回一个 GEOMETRY 值,该值是通过指定的长度比率计算出的输入 GEOMETRY 值的凹壳。 如果第三个参数设置为 true,则生成的几何图形(如果是多边形)可以有孔。 输出 GEOMETRY 值的 SRID 值等于输入值的 SRID GEOMETRY 值。 如果长度比率不介于 0 和 1(含)之间,则返回错误。

长度比率根据输入点 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))