名称

ST_Boundary — 返回几何图形的边界。

大纲

geometry ST_Boundary(geometry geomA);

描述

返回此 Geometry 的组合边界的闭合。组合边界的定义如 OGC SPEC 第 3.12.3.2 节中所述。由于该函数的结果是一个闭包,因此是拓扑封闭的,因此可以使用 OGC SPEC 第 3.12.2 节中讨论的表征几何基元来表示生成的边界。

它是通过GEOS模块实现的

[注意]

在 2.0.0 之前,如果与 GEOMETRYCOLLECTION 一起使用,此函数会引发异常。从 2.0.0 开始,它将返回 NULL(不支持的输入)。

此方法实现了 SQL 1.1 的 OGC 简单功能规范。 OGC SPEC s2.1.1.1

该方法实现了SQL/MM规范。 SQL-MM IEC 13249-3: 5.1.17

该函数支持 3d 并且不会丢失 z-index。

增强:引入了 2.1.0 三角函数支持

更改:3.2.0 支持 TIN,不使用地理,不线性化曲线

示例

LineString with boundary points overlaid.

Code
SELECT ST_Boundary(geom)
FROM (SELECT 'LINESTRING(100 150,50 60,70 80,160 170)'::geometry As geom) As f;
                
栅格输出
MULTIPOINT((100 150),(160 170))
Figure
Geometry figure for visual-st-boundary-01

Polygon holes with the boundary MultiLineString overlaid.

Code
SELECT ST_Boundary(geom)
FROM (SELECT
'POLYGON (( 10 130,50 190,110 190,140 150,150 80,100 10,20 40,10 130 ),
    ( 70 40,100 50,120 80,80 110,50 90,70 40 ))'::geometry As geom) As f;
                
栅格输出
MULTILINESTRING((10 130,50 190,110 190,140 150,150 80,100 10,20 40,10 130),
        (70 40,100 50,120 80,80 110,50 90,70 40))
Figure
Geometry figure for visual-st-boundary-02
Code
SELECT ST_Boundary('LINESTRING(1 1,0 0,-1 1)');
栅格输出
MULTIPOINT((1 1),(-1 1))
Figure
Geometry figure for visual-st-boundary-03
Code
SELECT ST_Boundary('POLYGON((1 1,0 0,-1 1,1 1))');
栅格输出
LINESTRING(1 1,0 0,-1 1,1 1)
Figure
Geometry figure for visual-st-boundary-04

This example uses a 3D polygon.

Code
SELECT ST_Boundary('POLYGON((1 1 1,0 0 1,-1 1 1,1 1 1))');
栅格输出
LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)
Figure
Geometry figure for visual-st-boundary-05

This example uses a 3D MultiLineString.

Code
SELECT ST_Boundary('MULTILINESTRING((1 1 1,0 0 0.5,-1 1 1),(1 1 0.5,0 0 0.5,-1 1 0.5,1 1 0.5) )');
栅格输出
MULTIPOINT(1 1 1,-1 1 1)
Figure
Geometry figure for visual-st-boundary-06