共用方式為

st_concavehull 函数

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

重要

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

使用指定的长度比率以 GEOMETRY 形式返回输入 GEOMETRY 的凹包。

Syntax

st_concavehull ( geoExpr, lengthRatioExpr[, allowHolesExpr])

Arguments

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

退货

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

长度比率根据输入点 Delaunay 三角中最短边缘和最长边缘之间的范围确定阈值。 从三角剖分中删除长度超过此阈值的边缘。 其余三角形定义凹凸外壳。 对于面域输入几何图形(多边形或多面体),该算法使用受约束的德劳内三角剖分。 生成的凹凸外壳尊重输入 GEOMETRY ,并包括其原始多边形。

例子

> 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))