El texto conocido ( WKT ) es un lenguaje de marcado de texto para representar objetos de geometría vectorial . Un equivalente binario , conocido como binario conocido ( WKB ), se utiliza 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 por 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 OGC y están presentes en aplicaciones que implementan estas especificaciones. Por ejemplo, PostGIS contiene funciones que pueden convertir geometrías hacia y desde una representación WKT, haciéndolas legibles por humanos.
La definición estándar de OGC requiere que un polígono esté topológicamente cerrado. También establece que si el anillo lineal exterior de un polígono se define en el sentido contrario a las agujas del reloj, se verá desde "arriba". Cualquier anillo lineal interior debe definirse en sentido opuesto al 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 los bytes de los datos:
00
: gran endian01
: 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, seguidos 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 elementos nombrados (pero no completamente definidos) dentro del WKT original: CircularString, CompoundCurve, CurvePolygon y CompoundSurface. [6]