- 类别:
ST_MAKEPOLYGON、ST_POLYGON¶
构造一个 GEOGRAPHY 或 GEOMETRY 对象,它表示一个无孔多边形。此函数使用指定的 LineString 作为外部循环。
此函数可纠正循环的方向,以防止创建横跨球体一半以上的多边形。相反,ST_MAKEPOLYGONORIENTED 不会尝试纠正循环的方向。
语法¶
ST_MAKEPOLYGON( <geography_or_geometry_expression> )
实参¶
geography_or_geometry_expression
一个 GEOGRAPHY 或 GEOMETRY 对象,表示最后一个点与第一个点为同一个点的 LineString(即循环)。
返回¶
该函数返回类型 GEOGRAPHY 或 GEOMETRY 的值。
使用说明¶
多边形排列必须构成循环。换句话说,定义 LineString 的点序列中的最后一个点必须与序列中的第一个点相同。
ST_POLYGON 是 ST_MAKEPOLYGON 的别名。
对于 GEOMETRY 对象,返回的 GEOMETRY 对象的 SRID 与输入相同。
示例¶
GEOGRAPHY 示例¶
该示例展示了 ST_MAKEPOLYGON 函数的简单用法:下面的点序列定义了一个宽为 1 度、高为 2 度的测地线矩形区域,多边形的左下角从赤道(纬度)和格林威治(经度)开始。序列中的最后一个点与第一个点相同,因此构成了一个完整的循环。
SELECT ST_MAKEPOLYGON( TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)') ) AS polygon1; +--------------------------------+ | POLYGON1 | |--------------------------------| | POLYGON((0 0,1 0,1 2,0 2,0 0)) | +--------------------------------+
GEOMETRY 示例¶
该示例展示了 ST_MAKEPOLYGON 函数的简单用法:
SELECT ST_MAKEPOLYGON( TO_GEOMETRY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)') ) AS polygon;+--------------------------------+ | POLYGON | |--------------------------------| | POLYGON((0 0,1 0,1 2,0 2,0 0)) | +--------------------------------+