适用于:
Databricks SQL
Databricks Runtime 17.1 及更高版本
Important
此功能目前以公共预览版提供。
注释
此功能在 Databricks SQL 经典仓库上不可用。 若要详细了解 Databricks SQL 仓库,请参阅 SQL 仓库类型。
从输入外部边界和内部边界的可选数组(表示为封闭线字符串)构造多边形 GEOMETRY 值。
Syntax
st_makepolygon ( outer[, innerArray] )
Arguments
-
outer:一个GEOMETRY值。 -
innerArray:GEOMETRY值的数组。
Returns
类型的 GEOMETRY值,表示多边形。
NULL将忽略内部边界数组中的任何值。
输出多边形的 SRID 值是输入几何图形的常见 SRID 值。
输出多边形的维度是输入线字符串的最大常见维度。
如果任何输入为NULL,该函数将返回NULL。
错误条件
- 如果任一输入几何图形不是线字符串,函数将返回 ST_INVALID_ARGUMENT。INVALID_TYPE。
- 如果输入几何图形没有相同的 SRID 值,函数将返回 ST_DIFFERENT_SRID_VALUES。
- 如果外部边界为空线字符串,则内部边界数组应为空数组。 否则,该函数将返回 ST_INVALID_ARGUMENT.EMPTY_OUTER_BOUNDARY。
- 如果外部边界的顶点少于四个,则函数将返回 ST_INVALID_ARGUMENT。TOO_FEW_VERTICES_IN_OUTER_BOUNDARY。
- 如果未关闭外部边界,函数将返回 ST_INVALID_ARGUMENT。OUTER_BOUNDARY_NOT_CLOSED。
- 如果任何内部边界的顶点少于四个顶点,该函数将返回 ST_INVALID_ARGUMENT。TOO_FEW_VERTICES_IN_INNER_BOUNDARY。
- 如果未关闭任何内部边界,函数将返回 ST_INVALID_ARGUMENT。INNER_BOUNDARY_NOT_CLOSED。
Examples
-- Returns a polygon constructed from the outer boundary.
> SELECT st_astext(st_makepolygon(st_geomfromtext('LINESTRING(0 0,10 0,10 10,0 10,0 0)')));
POLYGON((0 0,10 0,10 10,0 10,0 0))
-- Returns a polygon constructed from the outer boundary and an inner boundary.
> SELECT st_astext(st_makepolygon(st_geomfromtext('LINESTRING(0 0,10 0,10 10,0 10,0 0)'), array(st_geomfromtext('LINESTRING(1 1,2 1,1 2,1 1)'))));
POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 1,1 2,1 1))