Well-known text (WKT) representation

The OpenGIS Consortium Simple Features for SQL specification defines the well-known text representation to exchange geometry data in ASCII format. This representation is also referenced by the ISO SQL/MM Part: 3 Spatial standard.

See Spatial functions that convert geometries to and from data exchange formats for information on functions which accept and produce WKT data.

The well-known text representation of a geometry is defined as follows:

Read syntax diagramSkip visual syntax diagramPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONpoint-tagged-textlinestring-tagged textpolygon-tagged-textmultipoint-tagged-textmultilinestring-tagged-textmultipolygon-tagged-text
point-tagged-text
Read syntax diagramSkip visual syntax diagram?EMPTY(point-coordinates)ZEMPTY(point-z-coordinates)MEMPTY(point-m-coordinates)ZMEMPTY(point-zm-coordinates)
linestring-tagged-text
Read syntax diagramSkip visual syntax diagram?EMPTY(linestring-points)ZEMPTY(linestring-z-points)MEMPTY(linestring-m-points)ZMEMPTY(linestring-zm-points)
polygon-tagged-text
Read syntax diagramSkip visual syntax diagram?EMPTY(polygon-rings)ZEMPTY(polygon-z-rings)MEMPTY(polygon-m-rings)ZMEMPTY(polygon-zm-rings)
multipoint-tagged-text
Read syntax diagramSkip visual syntax diagram?EMPTY(multipoint-parts)ZEMPTY(multipoint-z-parts)MEMPTY(multipoint-m-parts)ZMEMPTY(multipoint-zm-parts)
multilinestring-tagged-text
Read syntax diagramSkip visual syntax diagram?EMPTY(multilinestring-parts)ZEMPTY(multilinestring-z-parts)MEMPTY(multilinestring-m-parts)ZMEMPTY(multilinestring-zm-parts)
multipolygon-tagged-text
Read syntax diagramSkip visual syntax diagram?EMPTY(multipolygon-parts)ZEMPTY(multipolygon-z-parts)MEMPTY(multipolygon-m-parts)ZMEMPTY(multipolygon-zm-parts)
point-coordinates
Read syntax diagramSkip visual syntax diagramx_coordy_coord
point-z-coordinates
Read syntax diagramSkip visual syntax diagrampoint-coordinates y_coord
point-m-coordinates
Read syntax diagramSkip visual syntax diagrampoint-coordinates m_coord
point-zm-coordinates
Read syntax diagramSkip visual syntax diagrampoint-coordinates y_coordm_coord
linestring-points
Read syntax diagramSkip visual syntax diagram?point-coordinates, ,point-coordinates?
linestring-z-points
Read syntax diagramSkip visual syntax diagram?point-z-coordinates, ,point-z-coordinates?
linestring-m-points
Read syntax diagramSkip visual syntax diagram?point-m-coordinates, ,point-m-coordinates?
linestring-zm-points
Read syntax diagramSkip visual syntax diagram?point-zm-coordinates, ,point-zm-coordinates?
polygon-rings
Read syntax diagramSkip visual syntax diagram,(linestring-pointslinestring-points)
polygon-z-rings
Read syntax diagramSkip visual syntax diagram,(linestring-z-pointslinestring-z-points)
polygon-m-rings
Read syntax diagramSkip visual syntax diagram,(linestring-m-pointslinestring-m-points)
polygon-zm-rings
Read syntax diagramSkip visual syntax diagram,(linestring-zm-pointslinestring-zm-points)
multipoint-parts
Read syntax diagramSkip visual syntax diagram,?point-coordinates?
multipoint-z-parts
Read syntax diagramSkip visual syntax diagram,?point-z-coordinates?
multipoint-m-parts
Read syntax diagramSkip visual syntax diagram,?point-m-coordinates?
multipoint-zm-parts
Read syntax diagramSkip visual syntax diagram,?point-zm-coordinates?
multilinestring-parts
Read syntax diagramSkip visual syntax diagram,(linestring-points)
multilinestring-z-parts
Read syntax diagramSkip visual syntax diagram,(linestring-z-points)
multilinestring-m-parts
Read syntax diagramSkip visual syntax diagram,(linestring-m-points)
multilinestring-zm-parts
Read syntax diagramSkip visual syntax diagram,(linestring-zm-points)
multipolygon-parts
Read syntax diagramSkip visual syntax diagram,(polygon-rings)
multipolygon-z-parts
Read syntax diagramSkip visual syntax diagram,(polygon-z-rings)
multipolygon-m-parts
Read syntax diagramSkip visual syntax diagram,(polygon-m-rings)
multipolygon-zm-parts
Read syntax diagramSkip visual syntax diagram,(polygon-zm-rings)

Parameters

x_coord

A numeric value (fixed, integer, or floating point), which represents the X coordinate of a point.

y_coord

A numeric value (fixed, integer, or floating point), which represents the Y coordinate of a point.

z_coord

A numeric value (fixed, integer, or floating point), which represents the Z coordinate of a point.

m_coord

A numeric value (fixed, integer, or floating point), which represents the M coordinate (measure) of a point.

If the geometry is empty, then the keyword EMPTY is to be specified instead of the coordinate list. The EMPTY keyword must not be embedded within the coordinate list

The following table provides some examples of possible text representations.


Table 1. Geometry types and their text representations

Geometry type

WKT representation

Comment

point

POINT EMPTY

empty point

point

POINT ( 10.05 10.28 )

point

point

POINT Z( 10.05 10.28 2.51 )

point with Z coordinate

point

POINT M( 10.05 10.28 4.72 )

point with M coordinate

point

POINT ZM( 10.05 10.28 2.51 4.72 )

point with Z coordinate and M coordinate

linestring

LINESTRING EMPTY

empty linestring

polygon

POLYGON (( 10 10, 10 20, 20 20, 20 15, 10 10))

polygon

multipoint

MULTIPOINT Z(10 10 2, 20 20 3)

multipoint with Z coordinates

multilinestring

MULTILINESTRING M(( 310 30 1, 40 30 20, 50 20 10 )( 10 10 0, 20 20 1))

multilinestring with M coordinates

multipolygon

MULTIPOLYGON ZM((( 1 1 1 1, 1 2 3 4, 2 2 5 6, 2 1 7 8, 1 1 1 1 )))

multipolygon with Z coordinates and M coordinates