DB2 Spatial Extender tiene varias funciones que generan geometrías a partir de descripciones de texto:
La representación de texto es una serie de formato de texto ASCII que permite intercambiar una geometría en formato de texto ASCII. Puede utilizar estas funciones en un programa en lenguaje de tercera o cuarta generación (3GL o 4GL) porque no necesitan definiciones de ninguna estructura de programa especial. La función ST_AsText convierte una geometría existente en una representación de texto.
Cada tipo de geometría tiene una representación de texto conocido, que se puede utilizar para crear nuevas instancias del tipo y para convertir las instancias existentes a formato textual para visualizarlas de forma alfanumérica.
La representación de texto conocido de una geometría se define del siguiente modo: la notación {}* indica 0 o más repeticiones de las señales entre llaves; las llaves no aparecen en la lista de señales de salida.
<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> := literal de doble precisión <y> := literal de doble precisión <PointZ> := <x> <y> <z> <x> := literal de doble precisión <y> := literal de doble precisión <z> := literal de doble precisión <PointM> := <x> <y> <m> <x> := literal de doble precisión <y> := literal de doble precisión <m> := literal de doble precisión <PointZM> := <x> <y> <z> <m> <x> := literal de doble precisión <y> := literal de doble precisión <z> := literal de doble precisión <m> := literal de doble precisión <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 sintaxis de la función básica es:
función (<descripción texto>,<SRID>)
El SRID, el identificador de referencias espaciales y clave principal de la tabla SPATIAL_REFERENCES, identifica el sistema de referencias espaciales de la geometría que se almacena en la tabla SPATIAL_REFERENCES. Para que una geometría se pueda insertar en una columna espacial, su SRID debe coincidir con el SRID de la columna espacial.
La descripción de texto está formada por tres componentes básicos que se encierran entre comillas simples, por ejemplo:
<'tipo geometría'> ['tipo coordenadas'] [''lista coordenadas']
donde:
La Tabla 65 muestra una lista de ejemplos de todas las posibles
representaciones de texto.
Tabla 65. Tipos de geometrías y sus representaciones de texto
Tipo de geometría
|
Descripción de texto
|
Comentario
|
---|---|---|
punto
|
punto vacío
|
punto vacío
|
punto
|
punto z vacío
|
punto vacío con coordenada z
|
punto
|
punto m vacío
|
punto vacío con medida
|
punto
|
punto zm vacío
|
punto vacío con coordenada z y medida
|
punto
|
punto ( 10,05 10,28 )
|
punto
|
punto
|
punto z ( 10,05 10,28 2,51 )
|
punto con coordenada z
|
punto
|
punto m ( 10,05 10,28 4,72 )
|
punto con medida
|
punto
|
punto zm ( 10,05 10,28 2,51 4,72 )
|
punto con coordenada z y medida
|
serie lineal
|
serie lineal vacía
|
serie lineal vacía
|
serie lineal
|
serie lineal z vacía
|
serie lineal vacía con coordenadas z
|
serie lineal
|
serie lineal m vacía
|
serie lineal vacía con medidas
|
serie lineal
|
serie lineal zm vacía
|
serie lineal vacía con coordenadas z y medidas
|
serie lineal
|
serie lineal ( 10,05 10,28 , 20,95 20,89 )
|
serie lineal
|
serie lineal
|
serie lineal z ( 10,05 10,28 3,09, 20,95 31,98 4,72, 21,98 29,80
3,51 )
|
serie lineal con coordenadas z
|
serie lineal
|
serie lineal m ( 10,05 10,28 5,84, 20,95 31,98 9,01, 21,98 29,80
12,84 )
|
serie lineal con medidas
|
serie lineal
|
serie lineal zm ( )
|
serie lineal con coordenadas z y medidas
|
polígono
|
polígono vacío
|
polígono vacío
|
polígono
|
polígono z vacío
|
polígono vacío con coordenadas z
|
polígono
|
polígono m vacío
|
polígono vacío con medidas
|
polígono
|
polígono zm vacío
|
polígono vacío con coordenadas z y medidas
|
polígono
|
polígono (( 10 10, 10 20, 20 20, 20 15, 10 10))
|
polígono
|
polígono
|
polígono z (( ))
|
polígono con coordenadas z
|
polígono
|
polígono m (( ))
|
polígono con medidas
|
polígono
|
polígono zm (( ))
|
polígono con coordenadas z y medidas
|
varios puntos
|
varios puntos vacío
|
varios puntos vacío
|
varios puntos
|
varios puntos z vacío
|
varios puntos vacío con coordenadas z
|
varios puntos
|
varios puntos m vacío
|
varios puntos vacío con medidas
|
varios puntos
|
varios puntos zm vacío
|
varios puntos vacío con coordenadas z y medidas
|
varios puntos
|
varios puntos vacío
|
varios puntos vacío
|
varios puntos
|
varios puntos (10 10, 20 20)
|
varios puntos con dos puntos
|
varios puntos
|
varios puntos z (10 10 2, 20 20 3)
|
varios puntos con coordenadas z
|
varios puntos
|
varios puntos m (10 10 4, 20 20 5)
|
varios puntos con medidas
|
varios puntos
|
varios puntos zm (10 10 2 4, 20 20 3 5)
|
varios puntos con coordenadas z y medidas
|
varias series lineales
|
varias series lineales vacío
|
varias series lineales vacío
|
varias series lineales
|
varias series lineales z vacío
|
varias series lineales vacío con coordenadas z
|
varias series lineales
|
varias series lineales m vacío
|
varias series lineales con medidas
|
varias series lineales
|
varias series lineales zm vacío
|
varias series lineales con coordenadas z y medidas
|
varias series lineales
|
varias series lineales (( ))
|
varias series lineales
|
varias series lineales
|
varias series lineales z (( ))
|
varias series lineales con coordenadas z
|
varias series lineales
|
varias series lineales m (( ))
|
varias series lineales con medidas
|
varias series lineales
|
varias series lineales zm (( ))
|
varias series lineales con coordenadas z y medidas
|
varios polígonos
|
varios polígonos vacío
|
varios polígonos vacío
|
varios polígonos
|
varios polígonos z vacío
|
varios polígonos vacío con coordenadas z
|
varios polígonos
|
varios polígonos m vacío
|
varios polígonos vacío con medidas
|
varios polígonos
|
varios polígonos z
|
varios polígonos vacío con coordenadas z y medidas
|
varios polígonos
|
varios polígonos ((( )))
|
varios polígonos
|
varios polígonos
|
varios polígonos z ((( )))
|
varios polígonos con coordenadas z
|
varios polígonos
|
varios polígonos 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)))
|
varios polígonos con medidas
|
varios polígonos
|
varios polígonos zm ((( )))
|
varios polígonos con coordenadas z y medidas
|