Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
将几何转换为多边形。
geometry-expression.ST_ToPolygon()
ST_Polygon 如果 geometry-expression 的类型为 ST_Polygon,则返回 geometry-expression。如果 geometry-expression 的类型为 ST_CurvePolygon,则返回 geometry-expression.ST_CurvePolyToPoly()。如果 geometry-expression 为几何集合,且其中单个元素的类型为 ST_CurvePolygon,则返回该元素。如果 geometry-expression 为空集,则返回类型为 ST_Polygon 的空集。否则,将抛出一个异常条件。
结果的空间参照系标识符与 geometry-expression 的空间参照系标识符相同。
将几何转换为多边形。逻辑等效于 CAST( geometry-expression AS ST_Polygon ) 所使用的逻辑。如果 geometry-expression 是曲线多边形,则使用 ST_CurvePolyToPoly() 将其内插到多边形。
如果已知 geometry-expression 为一个 ST_Polygon 值,则使用 TREAT( geometry-expression AS ST_Polygon ) 方法要比使用 ST_ToPolygon 方法更为有效。
缺省情况下,如果几何的原始格式可用,ST_ToPolygon 将使用该格式。否则使用内部格式。有关内部和原始格式的详细信息,请参见STORAGE FORMAT 子句,CREATE SPATIAL REFERENCE SYSTEM 语句。
SQL/MM (ISO/IEC 13249-3: 2006) 5.1.33
以下示例返回结果 [Polygon EMPTY]。
Polygon EMPTY
SELECT NEW ST_GeomCollection().ST_ToPolygon()
以下示例将返回错误,因为 Shape 列的类型为 ST_Geometry,而 ST_Geometry 不支持 ST_Area 方法。
SELECT Shape.ST_Area() FROM SpatialShapes WHERE ShapeID = 22
以下示例使用 ST_ToPolygon 将 Shape 列表达式的类型更改为 ST_Polygon。ST_Area 返回结果 [12.5]。
12.5
SELECT Shape.ST_ToPolygon().ST_Area() FROM SpatialShapes WHERE ShapeID = 22
在此情况下,已知 Shape 列值的类型为 ST_Polygon,因此可以使用 TREAT 有效地更改表达式的类型。ST_Area 返回结果 [12.5]。
SELECT TREAT( Shape AS ST_Polygon ).ST_Area() FROM SpatialShapes WHERE ShapeID = 22