18.3. Formatos de datos espaciales soportados

MySQL 5.0

18.3. Formatos de datos espaciales soportados

Esta sección describe los formatos de datos espaciales estándar que suelen utilizarse para representar objetos geométricos en consultas. Son:

  • Formato Well-Known Text (WKT)

  • Formato Well-Known Binary (WKB)

Internamente, MySQL almacena los valores de geometría en un formato que no es idéntico a ninguno de los formatos WKT o WKB

18.3.1. Formato Well-Known Text (WKT)

La representación Well-Known Text (WKT) de Geometrías está diseñada para intercambiar datos geométricos en formato ASCII.

Ejemplos de representaciones WKT de objetos geométricos son:

  • Un :

    POINT(15 20)
    

    Nótese que las coordenadas del punto se especifican sin coma separadora.

  • Una con cuatro puntos:

    LINESTRING(0 0, 10 10, 20 25, 50 60)
    

    Nótese que los pares de coordenadas de los puntos están separados por comas.

  • Un con un anillo exterior y un anillo interior:

    POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))
    
  • Un con tres valores :

    MULTIPOINT(0 0, 20 20, 60 60)
    
  • Una con dos valores :

    MULTILINESTRING((10 10, 20 20), (15 15, 30 15))
    
  • Un con dos valores :

    MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))
    
  • Una consistente en dos valores y una :

    GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))
    

Puede encontrar una gramática que especifica las reglas formales para la escritura de valores WKT en el documento de especificación OGC referenciado al principio de este capítulo.

18.3.2. Formato Well-Known Binary (WKB)

La representación Well-Known Binary (WKB) de valores geométricos está definida por la especificación OpenGIS. También está definida en el estándar ISO “SQL/MM Part 3: Spatial”.

WKB se utiliza para intercambiar datos como cadenas binarias representadas por valores que contienen información geométrica WKB.

WKB utiliza enteros sin signo de un byte, enteros sin signo de cuatro bytes, y números de ocho bytes de doble precisión (formato IEEE 754). Un byte son ocho bits.

Por ejemplo, un valor WKB que corresponde a un consiste en esta secuancia de 21 bytes (cada uno representado aquí por dos dígitos hexadecimales):

0101000000000000000000F03F000000000000F03F

La secuencia puede descomponerse en los siguientes componentes:

Orden de byte : 01
Tipo WKB	  : 01000000
X             : 000000000000F03F
Y             : 000000000000F03F

La representación de componentes es como sigue:

  • El orden de byte puede ser 0 o 1, para indicar almacenamiento tipo little-endian o big-endian. Los órdenes de byte little-endian y big-endian son también conocidos como Representación de Datos de Red (Network Data Representation (NDR)) y Representación Externa de Datos (External Data Representation (XDR)), respectivamente.

  • El tipo WKB es un código que indica el tipo de geometría. Los valores del 1 al 7 significan , , , , , , y .

  • Un valor tiene coordenadas X e Y, cada una representada por un valor de doble precisión.

Los valores WKB que representan valores geométricos más complejos son representados por estructuras de datos más complejas, tal como se detalla en la especificación OpenGIS.