Définition
ST_GeomFromCollection renvoie un jeu de lignes st_geometry. Chaque ligne comprend une géométrie et un entier. L’entier représente la position de la géométrie dans le jeu.
Utilisez la fonction ST_GeomFromCollection pour accéder à chaque géométrie individuelle d’une géométrie multi-parties. Lorsque la géométrie en entrée est une collection ou une géométrie multi-parties (par exemple, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon), ST_GeomFromCollection renvoie un enregistrement pour chaque composant de la collection, et le chemin exprime la position du composant dans la collection.
Si vous utilisez ST_GeomFromCollection sur une géométrie simple (par exemple, ST_Point, ST_LineString, ST_Polygon), un seul enregistrement est renvoyé avec un chemin vide puisqu’il n’existe qu’une seule géométrie.
Syntaxe
sde.st_geomfromcollection (shape sde.st_geometry)
Pour renvoyer uniquement la géométrie, utilisez (sde.st_geomfromcollection (shape)).st_geo.
Pour renvoyer uniquement la position de la la géométrie, utilisez (sde.st_geomfromcollection (shape)).path[1].
Type de retour
Jeu ST_Geometry
Exemple
Dans cet exemple, créez une classe d’entités multiligne (ghanasharktracks) contenant une seule entité avec une forme à quatre parties.
--Create the feature class.
CREATE TABLE ghanasharktracks (objectid integer, shape sde.st_geometry);
--Insert a multiline with four parts using SRID 4326.
INSERT INTO ghanasharktracks VALUES
(1,
sde.st_geometry('MULTILINESTRING Z (( 1 1 0, 1 6 0),(1 3 0, 3 3 0),(3 1 0, 3 3 0), (4 1 0, 4 6 0))',
4326
)
);
Pour avoir la confirmation que le champ contient des données, interrogez la table. Utilisez ST_AsText directement sur le champ de forme pour afficher les coordonnées de la forme en tant que texte. Notez que le texte descriptif de l’objet multilinestring est renvoyé.
--View inserted feature. SELECT gst_orig.objectid, sde.st_astext(gst_orig.shape) shapetext FROM ghanasharktracks gst_orig;
shapetext
-------------------------------
"MULTILINESTRING Z (( 1.00000000 1.00000000 0.00000000, 1.00000000 6.00000000 0.00000000),(1.00000000 3.00000000 0.00000000, 3.00000000 3.00000000 0.00000000),(3.00000000 1.00000000 0.00000000, 3.00000000 3.00000000 0.00000000), (4.00000000 1.00000000 0.00000000, 4.00000000 6.00000000 0.00000000))"
Pour renvoyer chaque géométrie linestring individuellement, utilisez la fonction ST_GeomFromCollection. Pour afficher la géométrie sous forme de texte, cet exemple utilise la fonction ST_AsText avec la fonction ST_GeomFromCollection.
--Return each linestring in the multilinestring
SELECT sde.st_astext((sde.st_geomfromcollection(gst.shape)).st_geo) shapetext, ((sde.st_geomfromcollection(gst.shape)).path[1]) path FROM ghanasharktracks gst;
shapetext path
-----------------------------------------------------------------------------------------------------------
"LINESTRING Z ( 1.00000000 1.00000000 0.00000000, 1.00000000 6.00000000 0.00000000)" 1
"LINESTRING Z ( 1.00000000 3.00000000 0.00000000, 3.00000000 3.00000000 0.00000000)" 2
"LINESTRING Z ( 3.00000000 1.00000000 0.00000000, 3.00000000 3.00000000 0.00000000)" 3
"LINESTRING Z ( 4.00000000 1.00000000 0.00000000, 4.00000000 6.00000000 0.00000000)" 4