ST_Boundary utilise en entrée un objet de type géométrie et renvoie le contour combiné correspondant sous forme d'objet de type géométrie. L'utilisation d'un point ou d'un multipoint en entrée donne toujours pour résultat un contour qui correspond à une géométrie vide de dimension 0 (et non une dimension de 1).
Syntaxe
db2gse.ST_Boundary(g db2gse.ST_Geometry)
Type de retour
db2gse.ST_Geometry
Exemples
Dans le fragment de code ci-après, la table BOUNDARY_TEST est créée. Elle comporte deux colonnes : GEOTYPE, qui est défini en tant que type de données varchar, et G1, défini comme la géométrie de superclasse. Les instructions INSERT ci-dessous insèrent chacune des géométries appartenant aux sous-classes. La fonction ST_Boundary extrait le contour de chaque sous-classe qui est stocké dans la colonne de géométrie G1. La dimension de la géométrie obtenue est toujours inférieure d'une unité à celle de la géométrie source. Le résultat des points et des multipoints est toujours un contour consistant en une géométrie vide de dimension 1. Les lignes et les multilignes renvoient un contour de type multipoint de dimension 0, et les polygones et multipolygones, un contour de type multiligne de dimension 1.
CREATE TABLE BOUNDARY_TEST (GEOTYPE varchar(20), G1 db2gse.ST_Geometry) INSERT INTO BOUNDARY_TEST VALUES('Point', db2gse.ST_PointFromText('point (10.02 20.01)', db2gse.coordref()..srid(0))) INSERT INTO BOUNDARY_TEST VALUES('Linestring', db2gse.ST_LineFromText('linestring (10.02 20.01,10.32 23.98, 11.92 25.64)', db2gse.coordref()..srid(0))) INSERT INTO BOUNDARY_TEST VALUES('Polygon', db2gse.ST_PolyFromText('polygon ((10.02 20.01,11.92 35.64,25.02 34.15, 19.15 33.94, 10.02 20.01))', db2gse.coordref()..srid(0))) INSERT INTO BOUNDARY_TEST VALUES('Multipoint', db2gse.ST_MPointFromText('multipoint (10.02 20.01,10.32 23.98, 11.92 25.64)', db2gse.coordref()..srid(0))) INSERT INTO BOUNDARY_TEST VALUES('Multilinestring', db2gse.ST_MLineFromText('multilinestring ((10.02 20.01,10.32 23.98, 11.92 25.64), (9.55 23.75,15.36 30.11))', db2gse.coordref()..srid(0))) INSERT INTO BOUNDARY_TEST VALUES('Multipolygon', db2gse.ST_MPolyFromText('multipolygon (((10.02 20.01,11.92 35.64, 25.02 34.15, 19.15 33.94,10.02 20.01)), ((51.71 21.73,73.36 27.04,71.52 32.87, 52.43 31.90,51.71 21.73)))', db2gse.coordref()..srid(0))) SELECT GEOTYPE, CAST(db2gse.ST_AsText(db2gse.ST_Boundary (G1)) as varchar(280)) "The boundary" FROM BOUNDARY_TEST GEOTYPE The boundary -------------------- ---------------------------------------------------------- Point POINT EMPTY Linestring MULTIPOINT ( 10.02000000 20.01000000, 11.92000000 25.64000000) Polygon MULTILINESTRING (( 10.02000000 20.01000000, 19.15000000 33.94000000, 25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000)) Multipoint POINT EMPTY Multilinestring MULTIPOINT ( 9.55000000 23.75000000, 10.02000000 20.01000000, 11.92000000 25.64000000, 15.36000000 30.11000000) Multipolygon MULTILINESTRING (( 51.71000000 21.73000000, 73.36000000 27.04000000, 71.52000000 32.87000000, 52.43000000 31.90000000, 51.71000000 21.73000000),( 10.02000000 20.01000000, 19.15000000 33.94000000, 25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000)) 6 record(s) selected.