DB2 Spatial Extender dispone di varie funzioni che generano geometrie dalle descrizioni di testo:
La rappresentazione di testo è una stringa con formato testo ASCII che consente lo scambio di geometrie in formato testo ASCII. E' possibile utilizzare queste funzioni in un programma con linguaggio di terza o quarta generazione (3GL o 4GL) in quanto non richiedono le definizioni delle strutture di programma speciale. La funzione ST_AsText converte una geometria esistente in una rappresentazione di testo.
Ciascun tipo di geometria presenta una rappresentazione WKT che è possibile utilizzare per creare nuove istanze di quel tipo e per convertire le istanze esistenti nel formato testo per la visualizzazione alfanumerica.
La rappresentazione WKT di una geometria è definita come riportato di seguito: {}* denota 0 o più ripetizioni dei token compreso tra parentesi; le parentesi non vengono visualizzate nell'elenco token di output.
<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 sintassi della funzione di base è:
function (<text description>,<SRID>)
L'identificativo di riferimento spaziale (SRID) e la chiave primaria della tabella SPATIAL_REFERENCES identifica il sistema di riferimento spaziale della geometria memorizzata nella tabella SPATIAL_REFERENCES. Prima di inserire una geometria in una colonna spaziale, è necessario che il relativo SRID corrisponda all'SRID della colonna spaziale.
La descrizione di testo è composta da tre componenti di base compresi tra singoli apici, ad esempio:
<'tipo di geometria'> ['tipo di coordinate'] [''elenco di coordinate']
dove:
Tabella 65 illustra un elenco completo degli esempi di tutte le
rappresentazioni di testo possibili.
Tabella 65. Tipi di geometria e delle relative rappresentazioni di testo.
Tipo di geometria
|
Descrizione del testo
|
Commento
|
---|---|---|
punto
|
point empty
|
punto vuoto
|
punto
|
point z empty
|
punto vuoto con coordinata z
|
punto
|
point m empty
|
punto vuoto con misura
|
punto
|
point zm empty
|
punto vuoto con coordinata z e misura
|
punto
|
point ( 10.05 10.28 )
|
punto
|
punto
|
point z ( 10.05 10.28 2.51 )
|
punto con coordinata z
|
punto
|
point m ( 10.05 10.28 4.72 )
|
punto con misura
|
punto
|
point zm ( 10.05 10.28 2.51 4.72
)
|
punto con coordinata z e misura
|
stringa lineare
|
linestring empty
|
stringa lineare vuota
|
stringa lineare
|
linestring z empty
|
stringa lineare vuota con coordinate z
|
stringa lineare
|
linestring m empty
|
stringa lineare vuota con misure
|
stringa lineare
|
linestring zm empty
|
stringa lineare vuota con coordinate z e misure
|
stringa lineare
|
linestring ( 10.05 10.28 , 20.95 20.89
)
|
stringa lineare
|
stringa lineare
|
linestring z ( 10.05 10.28 3.09, 20.95
31.98 4.72, 21.98 29.80 3.51 )
|
stringa lineare con coordinate z
|
stringa lineare
|
linestring m ( 10.05 10.28 5.84, 20.95
31.98 9.01, 21.98 29.80 12.84 )
|
stringa lineare con misure
|
stringa lineare
|
linestring zm ( )
|
stringa lineare con coordinate z e misure
|
poligono
|
polygon empty
|
poligono vuoto
|
poligono
|
polygon z empty
|
poligono vuoto con coordinate z
|
poligono
|
polygon m empty
|
poligono vuoto con misure
|
poligono
|
polygon zm empty
|
poligono vuoto con coordinate z e misure
|
poligono
|
polygon (( 10 10, 10 20, 20 20, 20 15, 10 10))
|
poligono
|
poligono
|
polygon z (( ))
|
poligono con coordinate z
|
poligono
|
polygon m (( ))
|
poligono con misure
|
poligono
|
polygon zm (( ))
|
poligono con coordinate z e misure
|
multipunto
|
multipoint empty
|
multipunto vuoto
|
multipunto
|
multipoint z empty
|
multipunto vuoto con coordinate z
|
multipunto
|
multipoint m empty
|
multipunto vuoto con misure
|
multipunto
|
multipoint zm empty
|
multipunto vuoto con coordinate z e misure
|
multipunto
|
multipoint empty
|
multipunto vuoto
|
multipunto
|
multipoint (10 10, 20 20)
|
multipunto con due punti
|
multipunto
|
multipoint z (10 10 2, 20 20 3)
|
multipunto con coordinate z
|
multipunto
|
multipoint m (10 10 4, 20 20 5)
|
multipunto con misure
|
multipunto
|
multipoint zm (10 10 2 4, 20 20 3 5)
|
multipunto con coordinate z e misure
|
multistringa lineare
|
multilinestring empty
|
multistringa lineare vuota
|
multistringa lineare
|
multilinestring z empty
|
multistringa lineare vuota con coordinate z
|
multistringa lineare
|
multilinestring m empty
|
multistringa lineare con misure
|
multistringa lineare
|
multilinestring zm empty
|
multistringa lineare con coordinate z e misure
|
multistringa lineare
|
multilinestring (( ))
|
multistringa lineare
|
multistringa lineare
|
multilinestring z (( ))
|
multistringa lineare con coordinate z
|
multistringa lineare
|
multilinestring m (( ))
|
multistringa lineare con misure
|
multistringa lineare
|
multilinestring zm (( ))
|
multistringa lineare con coordinate z e misure
|
multipoligono
|
multipolygon empty
|
multipoligono vuoto
|
multipoligono
|
multipolygon z empty
|
multipoligono vuoto con coordinate z
|
multipoligono
|
multipolygon m empty
|
multipoligono vuoto con misure
|
multipoligono
|
multipolygon z
|
multipoligono vuoto con coordinate z e misure
|
multipoligono
|
multipolygon ((( )))
|
multipoligono
|
multipoligono
|
multipolygon z ((( )))
|
multipoligono con coordinate z
|
multipoligono
|
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)))
|
multipoligono con misure
|
multipoligono
|
multipolygon zm ((( )))
|
multipoligono con coordinate z e misure
|