Name

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

Synopsis

geometry ST_Boundary(geometry geomA);

描述

返回此几何图形的组合边界的闭合。组合边界的定义如OGC规范的第3.12.3.2节所述。由于此函数的结果是闭包,因此在拓扑上是闭合的,因此可以使用OGC规范第3.12.2节中讨论的表示几何基元来表示结果边界。

由GEOS模块执行

[Note]

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

This method implements the OGC Simple Features Implementation Specification for SQL 1.1. OGC规范s2.1.1.1

This method implements the SQL/MM specification. SQL-MM 3:5.1.14

This function supports 3d and will not drop the z-index.

增强:2.1.0引入了对三角形的支持

已更改:3.2.0支持TIN,不使用GEOS,不线性化曲线

示例

边界点叠加的线串

SELECT ST_Boundary(geom)
FROM (SELECT 'LINESTRING(100 150,50 60, 70 80, 160 170)'::geometry As geom) As f;
                                

-- ST_AsText output
MULTIPOINT((100 150),(160 170))

具有边界多线串的多边形孔

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;
                                

-- ST_AsText output
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))

SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 1)')));
st_astext
-----------
MULTIPOINT((1 1),(-1 1))

SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 1))')));
st_astext
----------
LINESTRING(1 1,0 0,-1 1,1 1)

--Using a 3d polygon
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, 1 1 1))')));

st_asewkt
-----------------------------------
LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)

--Using a 3d multilinestring
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('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) )')));

st_asewkt
----------
MULTIPOINT((-1 1 1),(1 1 0.75))

另请参阅

ST_AsText, ST_ExteriorRing, ST_MakePolygon