ST_Boundary
Définition
ST_Boundary accepte un objet géométrie et retourne sa limite regroupée sous la forme d'un objet géométrie.
Syntaxe
sde.st_boundary (g1 sde.st_geometry)
Type de retour
ST_Geometry
Exemple
Dans cet exemple, la table de limites est créée avec deux colonnes : la colonne type, définie comme varchar, et la colonne geometry, définie comme superclasse ST_Geometry. Les instructions INSERT ci-dessous ajoutent un enregistrement pour chacune des géométries de sous-classe. La fonction ST_Boundary extrait la limite de chaque sous-classe stockée dans la colonne geometry. Notez que la géométrie résultante a toujours une dimension inférieure de un à celle de la géométrie en entrée. Les points et les multipoints résultent toujours en une limite qui est une géométrie vide, de dimension –1. Les objets linestring et multilinestring renvoient une limite multipoint, de dimension 0. Un objet polygon ou multipolygon renvoie toujours une limite multilinestring, de dimension 1.
Oracle
CREATE TABLE boundaries (geotype varchar(20), geometry sde.st_geometry); INSERT INTO BOUNDARIES VALUES ( 'Point', sde.st_pointfromtext ('point (10.02 20.01)', 0) ); INSERT INTO BOUNDARIES VALUES ( 'Linestring', sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) ); INSERT INTO BOUNDARIES VALUES ( 'Polygon', sde.st_polyfromtext ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0) ); INSERT INTO BOUNDARIES VALUES ( 'Multipoint', sde.st_mpointfromtext ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) ); INSERT INTO BOUNDARIES VALUES ( 'Multilinestring', sde.st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 0) ); INSERT INTO BOUNDARIES VALUES ( 'Multipolygon', sde.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)))', 0) ); SELECT type, sde.st_astext (sde.st_boundary (geometry)) "The boundary" FROM BOUNDARIES; 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))
PostgreSQL
CREATE TABLE boundaries (type varchar(20), geometry st_geometry); INSERT INTO boundaries VALUES ( 'Point', st_point ('point (10.02 20.01)', 0) ); INSERT INTO boundaries VALUES ( 'Linestring', st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) ); INSERT INTO boundaries VALUES ( 'Polygon', st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0) ); INSERT INTO boundaries VALUES ( 'Multipoint', st_multipoint ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) ); INSERT INTO boundaries VALUES ( 'Multilinestring', st_multilinestring ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 0) ); INSERT INTO boundaries VALUES ( 'Multipolygon', st_multipolygon ('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)))', 0) ); SELECT type, st_astext (st_boundary (geometry)) AS "The boundary" FROM boundaries; type The boundary Point EMPTY Linestring MULTIPOINT(10.02000000 20.01000000, 11.92000000 25.64000000) Polygon LINESTRING ((10.02000000 20.01000000, 19.15000000 33.94000000,25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000)) Multipoint 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))