ST_MakePolygon - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

ST_MakePolygon

ST_MakePolygon 具有两个可返回面的变体。一个采用单个几何体,另一个采用两个几何体。

  • 第一个变体的输入是定义输出面的外环的线串。

  • 第二个变体的输入是一个线串和一个多线串。两个都是空的或闭合的。

    输出面外环的边界是输入线串,而面内环的边界是输入多线串中的线串。如果输入线串为空,则返回空面。多线串中的空线串将被忽略。生成的几何体的空间参考系统标识符 (SRID) 是两个输入几何体的共同 SRID。

返回的几何体的维度与输入几何体的维度相同。外环和内环必须具有相同维度。

语法

ST_MakePolygon(geom1)
ST_MakePolygon(geom1, geom2)

参数

geom1

一个 GEOMETRY 数据类型的值,或一个计算结果为 GEOMETRY 类型的表达式。子类型必须是 LINESTRINGlinestring 值必须是闭合的或为空。

geom2

一个 GEOMETRY 数据类型的值,或一个计算结果为 GEOMETRY 类型的表达式。子类型必须是 MULTILINESTRING

返回类型

GEOMETRY子类型 的 POLYGON

返回的几何体的空间参考系统标识符 (SRID) 等于输入的 SRID。

如果 geom1geom2 为 null,则返回 null。

如果 geom1 不是线串,则返回一个错误。

如果 geom2 不是多线串,则返回一个错误。

如果 geom1 不是闭合的,则返回一个错误。

如果 geom1 是单个点或者不是闭合的,则返回一个错误。

如果 geom2 至少包含一个具有单个点或未闭合的线串,则返回一个错误。

如果 geom1geom2 具有不同的 SRID 值,则返回一个错误。

如果 geom1geom2 具有不同的维度,则返回一个错误。

示例

以下 SQL 从输入线串返回多边形。

SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')));
st_astext --------------- POLYGON((77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07))

以下 SQL 根据闭合线串和闭合多线串创建面。线串用于面的外环。多线串中的线串用于面的内环。

SELECT ST_AsEWKT(ST_MakePolygon(ST_GeomFromText('LINESTRING(0 0,10 0,10 10,0 10,0 0)'), ST_GeomFromText('MULTILINESTRING((1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))')));
st_astext ---------------------------------- POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))