Extension Spatiale dispose de plusieurs fonctions de génération de géométries à partir de descriptions textuelles :
La représentation textuelle consiste en une chaîne de format de texte ASCII qui permet d'échanger une géométrie en format de texte ASCII. Vous pouvez utiliser ces fonctions dans un programme de troisième ou quatrième génération (3GL ou 4GL) parce qu'elles n'impliquent pas de définir des structures de programmes spéciales. La fonction ST_AsText convertit une valeur de géométrie existante en une représentation textuelle.
Chaque type de géométrie dispose de sa propre représentation textuelle connue (WKT) qui peut être utilisée pour créer de nouvelles instances de ce type et pour convertir des instances existantes en un format de type texte en vue d'un affichage alphanumérique.
La représentation textuelle connue d'une géométrie est définie comme suit : la notation {}* signale zéro ou plus répétitions des marques à l'intérieur des parenthèses. les parenthèses ne figurent pas dans la liste des marques de la sortie.
<Geometry Tagged Text> := | <Point Tagged Text> | <LineString Tagged Text> | <Polygon Tagged Text> | <MultiPoint Tagged Text> | <MultiLineString Tagged Text> | <MultiPolygon Tagged Text> <Point Tagged Text> := POINT (<Point Text>) <LineString Tagged Text> := LINESTRING (<LineString Text>) <Polygon Tagged Text> := POLYGON (<Polygon Text>) <MultiPoint Tagged Text> := MULTIPOINT (<MultiPoint Text>) <MultiLineString Tagged Text> := MULTILINESTRING (<MultiLineString Text>) <MultiPolygon Tagged Text> := MULTIPOLYGON (<MultiPolygon Text>) <Point Text> := EMPTY | <Point> | Z (<PointZ>) | M (<PointM>) | ZM (<PointZM>) <Point> := <x> <y> <x> := double precision literal <y> := double precision literal <PointZ> := <x> <y> <z> <x> := double precision literal <y> := double precision literal <z> := double precision literal <PointM> := <x> <y> <m> <x> := double precision literal <y> := double precision literal <m> := double precision literal <PointZM> := <x> <y> <z> <m> <x> := double precision literal <y> := double precision literal <z> := double precision literal <m> := double precision literal <LineString Text> := EMPTY | ( <Point Text > {, <Point Text> }* ) | Z ( <PointZ Text > {, <PointZ Text> }* ) | M ( <PointM Text > {, <PointM Text> }* ) | ZM ( <PointZM Text > {, <PointZM Text> }* ) <Polygon Text> := EMPTY | ( <LineString Text > {,< LineString Text > }* ) <MultiPoint Text> := EMPTY | ( <Point Text > {, <Point Text > }* ) <MultiLineString Text> := EMPTY | ( <LineString Text > {,< LineString Text>}* ) <MultiPolygon Text> := EMPTY | ( < Polygon Text > {, < Polygon Text > }* )
La syntaxe de base de la fonction est la suivante :
fonction (<description textuelle>,<SRID db2gse.coordref>)
Le SRID, identificateur du système de références spatiales et clé primaire pour la table SPATIAL_REFERENCES, identifie le système de références spatiales de la géométrie stocké dans la table SPATIAL_REFERENCES. Avant qu'une géométrie soit insérée dans une colonne spatiale, son SRID doit correspondre à celui associé à la colonne spatiale.
La description textuelle est constituée de trois éléments de base figurant entre apostrophes par exemple :
<'type-géométrie'> ['type-coordonnées'] ['liste-coordonnées']
où :
Le Tableau 66 présente une liste exhaustive de toutes les représentations
textuelles possibles.
Tableau 66. Types de géométrie et représentations textuelles associées
Type de géométrie
|
Description textuelle
|
Commentaire
|
---|---|---|
point
|
point empty
|
point vide
|
point
|
point z empty
|
point vide avec coordonnée Z
|
point
|
point m empty
|
point vide avec mesure
|
point
|
point zm empty
|
point vide avec coordonnée Z et mesure
|
point
|
point ( 10.05 10.28 )
|
point
|
point
|
point z ( 10.05 10.28 2.51 )
|
point avec coordonnée Z
|
point
|
point m ( 10.05 10.28 4.72 )
|
point avec mesure
|
point
|
point zm ( 10.05 10.28 2.51 4.72
)
|
point avec coordonnée Z et mesure
|
ligne
|
linestring empty
|
ligne vide
|
ligne
|
linestring z empty
|
ligne vide avec coordonnées Z
|
ligne
|
linestring m empty
|
ligne vide avec mesures
|
ligne
|
linestring zm empty
|
ligne vide avec coordonnées Z et mesures
|
ligne
|
linestring ( 10.05 10.28, 20.95 20.89
)
|
ligne
|
ligne
|
linestring z ( 10.05 10.28 3.09, 20.95
31.98 4.72, 21.98 29.80 3.51 )
|
ligne avec coordonnées Z
|
ligne
|
linestring m ( 10.05 10.28 5.84, 20.95
31.98 9.01, 21.98 29.80 12.84 )
|
ligne avec mesures
|
ligne
|
linestring zm ( )
|
ligne avec coordonnées Z et mesures
|
polygone
|
polygon empty
|
polygone vide
|
polygone
|
polygon z empty
|
polygone vide avec coordonnées z
|
polygone
|
polygon m empty
|
polygone vide avec mesures
|
polygone
|
polygon zm empty
|
polygone vide avec coordonnées Z et mesures
|
polygone
|
polygon (( 10 10, 10 20, 20 20, 20 15, 10 10))
|
polygone
|
polygone
|
polygon z (( ))
|
polygone avec coordonnées z
|
polygone
|
polygon m (( ))
|
polygone avec mesures
|
polygone
|
polygon zm (( ))
|
polygone avec coordonnées Z et mesures
|
multipoint
|
multipoint empty
|
multipoint vide
|
multipoint
|
multipoint z empty
|
multipoint vide avec coordonnées z
|
multipoint
|
multipoint m empty
|
multipoint vide avec mesures
|
multipoint
|
multipoint zm empty
|
multipoint vide avec coordonnées z et mesures
|
multipoint
|
multipoint empty
|
multipoint vide
|
multipoint
|
multipoint (10 10, 20 20)
|
multipoint à deux points
|
multipoint
|
multipoint z (10 10 2, 20 20 3)
|
multipoint avec coordonnées z
|
multipoint
|
multipoint m (10 10 4, 20 20 5)
|
multipoint avec mesures
|
multipoint
|
multipoint zm (10 10 2 4, 20 20 3 5)
|
multipoint avec coordonnées Z et mesures
|
multiligne
|
multilinestring empty
|
multiligne vide
|
multiligne
|
multilinestring z empty
|
multiligne vide avec coordonnées z
|
multiligne
|
multilinestring m empty
|
multiligne vide avec mesures
|
multiligne
|
multilinestring zm empty
|
multiligne vide avec coordonnées z et mesures
|
multiligne
|
multilinestring (( ))
|
multiligne
|
multiligne
|
multilinestring z (( ))
|
multiligne avec coordonnées z
|
multiligne
|
multilinestring m (( ))
|
multiligne avec mesures
|
multiligne
|
multilinestring zm (( ))
|
multiligne avec coordonnées z et mesures
|
multipolygone
|
multipolygon empty
|
multipolygone vide
|
multipolygone
|
multipolygon z empty
|
multipolygone vide avec coordonnées z
|
multipolygone
|
multipolygon m empty
|
multipolygone vide avec mesures
|
multipolygone
|
multipolygon z
|
multipolygone vide avec coordonnées z et mesures
|
multipolygone
|
multipolygon ((( )))
|
multipolygone
|
multipolygone
|
multipolygon z ((( )))
|
multipolygone avec coordonnées z
|
multipolygone
|
multipolygon m (((10 10 2, 10 20 3, 20 20 4, 20 15 5,
10 10 2), (50 40 7, 50 50 3, 60 50 4, 60 40 5, 50 40
7)))
|
multipolygone avec mesures
|
multipolygone
|
multipolygon zm ((( )))
|
multipolygone avec coordonnées z et mesures
|