DB2 Spatial Extender hat verschiedene Funktionen, die Geometrien aus Textbeschreibungen generieren:
Die Textdarstellung ist eine ASCII-Zeichenfolge, die den Austausch der Geometrie in ASCII-Textform ermöglicht. Sie können diese Funktionen in einer Sprache der dritten oder vierten Generation (3GL oder 4GL) verwenden, da sie keine Definition spezieller Programmstrukturen erfordern. Die Funktion ST_AsText setzt eine vorhandene Geometrie um in eine Textdarstellung.
Jeder Geometrie hat eine bekannte Textdarstellung, die zur Konstruktion neuer Exemplare des Typs und zum Umsetzen vorhandener Exemplare in Textform für die alphanumerische Anzeige verwendet werden kann.
Die bekannte Textdarstellung einer Geometrie ist wie folgt definiert: die Notation {}* gibt 0 oder mehr Wiederholungen der Zeichen innerhalb der geschweiften Klammern an; die geschweiften Klammern erscheinen nicht in der Liste der Ausgabezeichen.
<Geometrie-Befehlstext> := | <Punkt-Befehlstext> | <Linienfolgen-Befehlstext> | <Polygon-Befehlstext> | <Mehrpunktangaben-Befehlstext> | <Mehrlinienfolgen-Befehlstext> | <Multipolygon-Befehlstext> <Punkt-Befehlstext> := POINT <Punkttext> <Linienfolgen-Befehlstext> := LINESTRING <Linienfolgentext> <Polygon-Befehlstext> := POLYGON <Polygontext> <Mehrpunktangaben-Befehlstext> := MULTIPOINT <Mehrpunktangabentext> <Mehrlinienfolgen-Befehlstext> := MULTILINESTRING <Mehrlinienfolgentext> <Multipolygon-Befehlstext> := MULTIPOLYGON <Multipolygontext> <Punkttext> := EMPTY | <Punkt> | Z <PunktZ> | M <PunktM> | ZM <PunktZM> <Punkt> := <x> <y> <x> := Literal mit doppelter Genauigkeit <y> := Literal mit doppelter Genauigkeit <PunktZ> := <x> <y> <z> <x> := Literal mit doppelter Genauigkeit <y> := Literal mit doppelter Genauigkeit <z> := Literal mit doppelter Genauigkeit <PunktM> := <x> <y> <m> <x> := Literal mit doppelter Genauigkeit <y> := Literal mit doppelter Genauigkeit <m> := Literal mit doppelter Genauigkeit <PunktZM> := <x> <y> <z> <m> <x> := Literal mit doppelter Genauigkeit <y> := Literal mit doppelter Genauigkeit <z> := Literal mit doppelter Genauigkeit <m> := Literal mit doppelter Genauigkeit <Linienfolgentext> := EMPTY | ( <Punkttext > {, <Punkttext> }* ) | Z ( <PunktZ-Text > {, <PunktZ-Text> }* ) | M ( <PunktM-Text > {, <PunktM-Text> }* ) | ZM ( <PunktZM-Text > {, <PunktZM-Text> }* ) <Polygontext> := EMPTY | ( <Linienfolgentext > {,<Linienfolgentext > }* ) <Mehrpunkttext> := EMPTY | ( <Punkttext > {, <Punkttext > }* ) <Mehrlinienfolgentext> := EMPTY | ( <Linienfolgentext > {,< Linienfolgentext>}* ) <Multipolygontext> := EMPTY | ( < Polygontext > {, < Polygontext > }* )
Die Basisfunktionssyntax lautet:
Funktion (<Textbeschreibung>,<SRID>)
Die SRID, die Kennung des räumlichen Bezugssystems, und der Primärschlüssel zu der Tabelle SPATIAL_REFERENCES kennzeichnen das räumliche Bezugssystem der Geometrie, das in der Tabelle SPATIAL_REFERENCES gespeichert ist. Bevor eine Geometrie in eine räumliche Spalte eingefügt wird, muß ihre SRID mit der SRID der räumlichen Spalte übereinstimmen.
Die Textbeschreibung besteht aus drei in einfachen Anführungszeichen eingeschlossenen Basiskomponenten. Beispiel.
<'Geometrietyp'> ['Koordinatentyp' ] [''Koordinatenliste']
Die Angaben haben folgende Bedeutung:
Tabelle 65 zeigt eine vollständige Liste der Beispiele aller möglichen
Textdarstellungen.
Tabelle 65. Geometrietypen und ihre Textdarstellung
Geometrietyp
|
Textbeschreibung
|
Kommentar
|
---|---|---|
point
|
point empty
|
Leerer Punkt
|
point
|
point z empty
|
Leerer Punkt mit Z-Koordinate
|
point
|
point m empty
|
Leerer Punkt mit Maß
|
point
|
point zm empty
|
Leerer Punkt mit Z-Koordinate und Maß
|
point
|
point ( 10.05 10.28 )
|
Punkt
|
point
|
point z ( 10.05 10.28 2.51 )
|
Punkt mit Z-Koordinate
|
point
|
point m ( 10.05 10.28 4.72 )
|
Punkt mit Maß
|
point
|
point zm ( 10.05 10.28 2.51 4.72
)
|
Punkt mit Z-Koordinate und Maß
|
linestring
|
linestring empty
|
Leere Linienfolge
|
linestring
|
linestring z empty
|
Leere Linienfolge mit Z-Koordinaten
|
linestring
|
linestring m empty
|
Leere Linienfolge mit Maß
|
linestring
|
linestring zm empty
|
Leere Linienfolge mit Z-Koordinaten und Maß
|
linestring
|
linestring ( 10.05 10.28 , 20.95 20.89
)
|
Linienfolge
|
linestring
|
linestring z ( 10.05 10.28 3.09, 20.95
31.98 4.72, 21.98 29.80 3.51 )
|
Linienfolge mit Z-Koordinaten
|
linestring
|
linestring m ( 10.05 10.28 5.84, 20.95
31.98 9.01, 21.98 29.80 12.84 )
|
Linienfolge mit Maß
|
linestring
|
linestring zm ( )
|
Linienfolge mit Z-Koordinaten und Maß
|
polygon
|
polygon empty
|
Leeres Polygon
|
polygon
|
polygon z empty
|
Leeres Polygon mit Z-Koordinaten
|
Polygon
|
polygon m empty
|
Leeres Polygon mit Maß
|
polygon
|
polygon zm empty
|
Leeres Polygon mit Z-Koordinaten und Maß
|
polygon
|
polygon (( 10 10, 10 20, 20 20, 20 15, 10 10))
|
Polygon
|
polygon
|
polygon z (( ))
|
Polygon mit Z-Koordinaten
|
polygon
|
polygon m (( ))
|
Polygon mit Maß
|
polygon
|
polygon zm (( ))
|
Polygon mit Z-Koordinaten und Maß
|
multipoint
|
multipoint empty
|
Leere Mehrpunktangabe
|
multipoint
|
multipoint z empty
|
Leere Mehrpunktangabe mit Z-Koordinaten
|
multipoint
|
multipoint m empty
|
Leere Mehrpunktangabe mit Maß
|
multipoint
|
multipoint zm empty
|
Leere Mehrpunktangabe mit Z-Koordinaten und Maß
|
multipoint
|
multipoint empty
|
Leere Mehrpunktangabe
|
multipoint
|
multipoint (10 10, 20 20)
|
Mehrpunktangabe mit zwei Punkten
|
multipoint
|
multipoint z (10 10 2, 20 20 3)
|
Mehrpunktangabe mit Z-Koordinaten
|
multipoint
|
multipoint m (10 10 4, 20 20 5)
|
Mehrpunktangabe mit Maß
|
multipoint
|
multipoint zm (10 10 2 4, 20 20 3 5)
|
Mehrpunktangabe mit Z-Koordinaten und Maß
|
multilinestring
|
multilinestring empty
|
Leere Mehrlinienfolge
|
multilinestring
|
multilinestring z empty
|
Leere Mehrlinienfolge mit Z-Koordinaten
|
multilinestring
|
multilinestring m empty
|
Leere Mehrlinienfolge mit Maß
|
multilinestring
|
multilinestring zm empty
|
Leere Mehrlinienfolge mit Z-Koordinaten mit Maß
|
multilinestring
|
multilinestring (( ))
|
Mehrlinienfolge
|
multilinestring
|
multilinestring z (( ))
|
Mehrlinienfolge mit Z-Koordinaten
|
multilinestring
|
multilinestring m (( ))
|
Mehrlinienfolge mit Maß
|
multilinestring
|
multilinestring zm (( ))
|
Mehrlinienfolge mit Z-Koordinaten mit Maß
|
multipolygon
|
multipolygon empty
|
Leeres Multipolygon
|
multipolygon
|
multipolygon z empty
|
Leeres Multipolygon mit Z-Koordinaten
|
multipolygon
|
multipolygon m empty
|
Leeres Multipolygon mit Maß
|
multipolygon
|
multipolygon z
|
Leeres Multipolygon mit Z-Koordinaten und Maß
|
multipolygon
|
multipolygon ((( )))
|
Multipolygon
|
multipolygon
|
multipolygon z ((( )))
|
Multipolygon mit Z-Koordinates
|
multipolygon
|
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)))
|
Multipolygon mit Maß
|
multipolygon
|
multipolygon zm ((( )))
|
Multipolygon mit Z-Koordinaten und Maß
|