Professional Documents
Culture Documents
Well-known text (WKT) is a text markup language for representing vector geometry objects on
a map, spatial reference systems of spatial objects and transformations between spatial reference
systems. A binary equivalent, known as well-known binary (WKB), is used to transfer and
store the same information on databases. The formats were originally defined by the Open
Geospatial Consortium (OGC) and described in their Simple Feature Access and Coordinate
Transformation Service specifications. The current standard definition is in the ISO/IEC 13249-
3:2011 standard, "Information technology – Database languages – SQL multimedia and
application packages – Part 3: Spatial" (SQL/MM).
Contents
[hide]
1 Geometric objects
o 1.1 Well-known binary
2 Coordinate reference system
3 Transformations
4 RDBMS Engines that provide support
5 APIs that provide support
6 Protocols that provide support
7 Variations
8 See also
9 References
10 External links
Geometric objects[edit]
WKT can represent 18 distinct geometric objects:
Geometry
Point, MultiPoint
LineString, MultiLineString
Polygon, MultiPolygon, Triangle
CircularString
Curve, MultiCurve, CompoundCurve
CurvePolygon
Surface, MultiSurface, PolyhedralSurface
TIN (Triangulated irregular network), TINZ
GeometryCollection
Coordinates for geometries may be 2D (x, y), 3D (x, y, z), 4D (x, y, z, m) with an m value that is
part of a linear referencing system or 2D with an m value (x, y, m). Three-dimensional
geometries are designated by a "Z" after the geometry type and geometries with a linear
referencing system have an "M" after the geometry type. Empty geometries that contain no
coordinates can be specified by using the symbol EMPTY after the type name.
WKT geometries are used throughout OGC specifications and are present in applications that
implement these specifications. For example, PostGIS contains functions that can convert
geometries to and from a WKT representation, making them human readable.
It's useful to note that the OGC standard definition requires a polygon to be topologically closed.
It also states that if the exterior linear ring of a polygon is defined in a counter clockwise
direction it will be seen from the "top". Any interior linear rings should be defined in opposite
fashion compared to the exterior ring, in this case, clockwise.[1]
Polygon
POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),
(20 30, 35 35, 30 20, 20 30))
The following are some other examples of geometric WKT strings: (Note: Each item below is an
individual geometry.)
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
POINT EMPTY
MULTIPOLYGON EMPTY
CIRCULARSTRING(1 5, 6 2, 7 3)
COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))
CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1
0,0 1,-1 0))
MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))
TRIANGLE((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)))
POLYHEDRALSURFACE Z (
((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))
)
Well-known binary[edit]
The first byte indicates the byte order for the data:
00 : big endian
01 : little endian
The second part is an integer for the geometry type, as described below:
Each data type has a unique data structure, such as the number of points or linear rings, followed
by coordinates in double-precision floating-point format (double).
CS[Cartesian,3],
AXIS["(X)",geocentricX],
AXIS["(Y)",geocentricY],
AXIS["(Z)",geocentricZ],
LENGTHUNIT["metre",1.0]
Transformations[edit]
A WKT format is defined to describe the transformation methods and parameters used to convert
coordinates between two different spatial reference systems.
1 PARAM_MT["Mercator_2SP",
2 PARAMETER["semi_major",6370997.0],
3 PARAMETER["semi_minor",6370997.0],
4 PARAMETER["central_meridian",180.0],
5 PARAMETER["false_easting",-500000.0],
6 PARAMETER["false_northing",-1000000.0],
7 PARAMETER["standard parallel 1",60.0]]
8 PARAM_MT["Affine",
9 PARAMETER["num_row",3],
10 PARAMETER["num_col",3],
11 PARAMETER["elt_0_1",1],
12 PARAMETER["elt_0_2",2],
13 PARAMETER["elt 1 2",3]]
Variations[edit]
EWKT and EWKB – Extended Well-Known Text/Binary – A PostGIS-specific format that
includes the spatial reference system identifier (SRID) and up to 4 ordinate values.[8][9] For
example: SRID=4326;POINT(-44.3 60.1) to locate a longitude/latitude coordinate using
the WGS 84 reference coordinate system.
AGF Text – Autodesk Geometry Format – An extension to OGC's Standard (at the time),
to include curved elements; most notably used in MapGuide.