Name

ST_Boundary — Renvoie la limite d'une géométrie.

Synopsis

geometry ST_Boundary(geometry geomA);

Description

Renvoie l'ensemble formant la frontière finie de cette géométrie. La notion de frontière est définie dans la section 3.12.3.2 des spécifications OGC. Le résultat de cette fonction est un ensemble topologiquement fermé, représentable avec les types de base, comme décrit dans la section 3.12.2 des spécifications OGC.

Effectué par le module GEOS

[Note]

Avant la version 2.0.0, cette fonction renvoie une exception si une GEOMETRYCOLLECTION est passée en paramètre. A partir de la 2.0.0, la fonction renvoie null (paramètre non supporté).

Cette méthode implémente la spécification OGC Simple Features Implementation Specification for SQL 1.1.

OGC SPEC s2.1.1.1

Cette méthode implémente la spécification SQL/MM.

SQL-MM IEC 13249-3 : 5.1.17

Cette fonction prend en charge la 3D et ne supprime pas l'indice z.

Amélioration : 2.1.0 introduction du support pour Triangle

Modifié : 3.2.0 support pour TIN, n'utilise pas geos, ne linéarise pas les courbes

Exemples

Ligne avec les points de démarcation superposés

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

trous de polygone avec une multi-lignes en limite

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

Voir aussi

ST_AsText, ST_ExteriorRing, ST_MakePolygon