ST_Boundary — Returnerar gränsen för en geometri.
geometry ST_Boundary(
geometry geomA)
;
Returnerar stängningen av den kombinatoriska gränsen för denna geometri. Den kombinatoriska gränsen definieras enligt beskrivningen i avsnitt 3.12.3.2 i OGC SPEC. Eftersom resultatet av denna funktion är en slutning, och därmed topologiskt sluten, kan den resulterande gränsen representeras med hjälp av representativa geometriprimitiver som diskuteras i OGC SPEC, avsnitt 3.12.2.
Utförs av GEOS-modulen
![]() |
|
Före 2.0.0 kastar denna funktion ett undantag om den används med |
Denna metod implementerar OGC:s implementeringsspecifikation för enkla funktioner för SQL 1.1. OGC SPEC s2.1.1.1
Denna metod implementerar SQL/MM-specifikationen. SQL-MM IEC 13249-3: 5.1.17
Denna funktion stöder 3d och kommer inte att tappa z-index.
Förbättrad: 2.1.0-stöd för Triangle infördes
Ändrat: 3.2.0 stöd för TIN, använder inte geos, lineariserar inte kurvor
![]() Linjestring med överlagrade gränspunkter
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))
|
![]() polygonhål med gräns multilinestring
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))