类别:

地理空间函数

ST_MAKEPOLYGON、ST_POLYGON

构造一个 GEOGRAPHYGEOMETRY 对象,它表示一个无孔多边形。此函数使用指定的 LineString 作为外部循环。

此函数可纠正循环的方向,以防止创建横跨球体一半以上的多边形。相反,ST_MAKEPOLYGONORIENTED 不会尝试纠正循环的方向。

另请参阅:

TO_GEOGRAPHYTO_GEOMETRYST_MAKEPOLYGONORIENTED

语法

ST_MAKEPOLYGON( <geography_or_geometry_expression> )
Copy

实参

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

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;
Copy
+--------------------------------+
| POLYGON                        |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy
语言: 中文