Name

ST_Boundary — Gibt die abgeschlossene Hülle aus der kombinierten Begrenzung der Geometrie zurück.

Synopsis

geometry ST_Boundary(geometry geomA);

Beschreibung

Gibt die abgeschlossene Hülle aus der kombinierten Begrenzung der Geometrie zurück. Die Definition der kombinierte Begrenzung ist in Abschnitt 3.12.3.2 der OGC SPEC beschrieben. Da das Ergebnis dieser Funktion eine abgeschlossene Hülle und daher topologisch geschlossen ist, kann die resultierende Begrenzung durch geometrische Primitive, wie in Abschnitt 3.12.2. der OGC SPEC erörtert, dargestellt werden.

Wird durch das GEOS Modul ausgeführt

[Note]

Vor 2.0.0 meldete diese Funktion einen Fehler, falls sie auf eine GEOMETRYCOLLECTION angewandt wurde. Ab 2.0.0 wird stattdessen NULL (nicht unterstützte Eingabe) zurückgegeben.

Diese Methode implementiert die OGC Simple Features Implementation Specification for SQL 1.1. OGC SPEC s2.1.1.1

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM IEC 13249-3: 5.1.17

Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.

Erweiterung: mit 2.1.0 wurde die Unterstützung von Dreiecken eingeführt

Geändert: 3.2.0 Unterstützung für TIN, verwendet keine Geos, linearisiert keine Kurven

Beispiele

Linienzug mit überlagerten Begrenzungspunkten

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

Polygon mit Lücke und der Abgrenzung/Boundary als 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))