El texto conocido ( WKT ) es un lenguaje de marcado de texto para representar objetos de geometría vectorial . Se utiliza un equivalente binario , conocido como binario conocido ( WKB ), para transferir y almacenar la misma información en una forma más compacta, conveniente para el procesamiento informático, pero que no es legible para humanos. Los formatos fueron definidos originalmente por el Open Geospatial Consortium (OGC) y descritos en su Simple Feature Access . [1] La definición estándar actual se encuentra en la norma ISO/IEC 13249-3:2016. [2]
WKT puede representar los siguientes objetos geométricos distintos:
Las coordenadas de las geometrías pueden ser 2D ( x , y ), 3D ( x , y , z ), 4D ( x , y , z , m ) con un valor m que forma parte de un sistema de referencia lineal o 2D con un valor m ( x , y , m ). Las geometrías tridimensionales se designan con una "Z" después del tipo de geometría y las geometrías con un sistema de referencia lineal tienen una "M" después del tipo de geometría. Las geometrías vacías que no contienen coordenadas se pueden especificar utilizando el símbolo EMPTY
después del nombre del tipo.
Las geometrías WKT se utilizan en todas las especificaciones de OGC y están presentes en las aplicaciones que implementan estas especificaciones. Por ejemplo, PostGIS contiene funciones que pueden convertir geometrías a y desde una representación WKT, lo que las hace legibles para humanos.
La definición estándar de OGC requiere que un polígono sea topológicamente cerrado. También establece que si el anillo lineal exterior de un polígono se define en sentido antihorario, entonces se verá desde la "parte superior". Cualquier anillo lineal interior debe definirse de manera opuesta en comparación con el anillo exterior, en este caso, en el sentido de las agujas del reloj. [3]
Los siguientes son algunos otros ejemplos de cadenas WKT geométricas: (Nota: cada elemento a continuación es una geometría individual).
COLECCIÓN DE GEOMETRÍA (PUNTO (4 6), CUERDA DE LÍNEAS (4 6,7 10))PUNTO ZM (1 1 5 60)PUNTO M (1 1 80)PUNTO VACÍOMULTIPOLÍGONO VACÍOTRIÁNGULO((0 0 0,0 1 0,1 1 0,0 0 0))TIN (((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)))SUPERFICIE POLIÉDRICA Z (PARCHES ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 0 1 0, 0 1 1, 0 0 1, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 1, 1 0 1, 0 0 1, 0 1 1, 1 1 1)), ((1 1 1, 1 0 1, 1 0 0, 1 1 0, 1 1 1)), ((1 1 1, 1 1 0, 0 1 0, 0 1 1, 1 1 1)) )
Las representaciones binarias conocidas (WKB) normalmente se muestran en cadenas hexadecimales .
El primer byte indica el orden de bytes de los datos:
00
: endian grande01
:pequeño endianLos siguientes 4 bytes son un entero sin signo de 32 bits para el tipo de geometría, como se describe a continuación:
Cada tipo de datos tiene una estructura de datos única, como el número de puntos o anillos lineales, seguido de coordenadas en números dobles de 64 bits .
Por ejemplo, la geometría POINT(2.0 4.0)
se representa como: , donde:000000000140000000000000004010000000000000
00
o 0: big endian00000001
o 1: PUNTO (2D)4000000000000000
o 2.0: coordenada x4010000000000000
o 4.0: coordenada ySRID=4326;POINT(-44.3 60.1)
para localizar una coordenada de longitud/latitud utilizando el sistema de coordenadas de referencia WGS 84. También admite curvas circulares, siguiendo los elementos nombrados (pero no completamente definidos) dentro del WKT original: CircularString, CompoundCurve, CurvePolygon y CompoundSurface. [6]