名稱

ST_Boundary — 傳回幾何的邊界。

概要

geometry ST_Boundary(geometry geomA);

說明

傳回此幾何的組合邊界的閉包。組合邊界定義於 OGC 規格的 3.12.3.2 節中。由於此函數的結果為閉包,因此在拓撲上是封閉的,可以使用 OGC 規格 3.12.2 節中討論的表示幾何基元來表示結果邊界。

由 GEOS 模組執行

[Note]

在 2.0.0 之前的版本中,如果與 GEOMETRYCOLLECTION 一起使用,此函數會拋出例外。從 2.0.0 版本開始,它將改為傳回 NULL(不支援的輸入)。

此方法實作了 OGC 簡單特徵 SQL 1.1 實作規範。 OGC 規格 s2.1.1.1

此方法實作了 SQL/MM 規範。SQL-MM IEC 13249-3: 5.1.17

此函數支援 3D,並且不會捨棄 z 索引。

增強功能: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))