博客

空间数据 WKT 格式详解

WKT(Well-Known Text)格式的说明文档

WKT(Well-Known Text)格式详解

一、什么是 WKT#

WKT(Well-Known Text)是一种用于描述空间几何对象的文本标准。

WKT 由 OGC(Open Geospatial Consortium)制定,被广泛应用于:

  • GIS 系统
  • PostGIS
  • GeoServer
  • MapServer
  • QGIS
  • OpenLayers
  • Cesium
  • PostgreSQL/PostGIS

其核心作用:

使用文本方式描述空间几何对象。


二、WKT 的基本结构#

WKT 采用:

text
GEOMETRYTYPE (坐标)

例如:

text
POINT (30 10)

表示:

  • X = 30
  • Y = 10

三、常见几何类型#

wkt_examples.png


四、POINT(点)#

text
POINT (30 10)

表示单个点。

应用:

  • POI
  • GPS 定位
  • 监测站点

五、LINESTRING(线)#

text
LINESTRING (30 10, 10 30, 40 40)

表示折线。

应用:

  • 道路
  • 河流
  • 轨迹

六、POLYGON(面)#

text
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))

注意:

  • 首尾坐标必须闭合。

应用:

  • 行政区
  • 地块
  • 湖泊

七、MULTIPOINT#

text
MULTIPOINT ((10 40), (40 30), (20 20))

表示多个点。


八、MULTILINESTRING#

text
MULTILINESTRING ((10 10, 20 20),(40 40, 30 30))

表示多个线对象。


九、MULTIPOLYGON#

text
MULTIPOLYGON (((40 40,20 45,45 30,40 40)))

表示多个面对象。

应用:

  • 多岛屿区域
  • 多地块行政区

十、GeometryCollection#

text
GEOMETRYCOLLECTION ( POINT (40 10), LINESTRING (10 10, 20 20, 10 40) )

表示混合几何集合。


十一、WKT 与 GeoJSON 对比#

类型 WKT GeoJSON
表达形式 文本 JSON
可读性 高 高
Web 兼容 一般 很强
数据交换 强 很强

十二、PostGIS 中的 WKT#

创建点:

sql
SELECT ST_GeomFromText('POINT(30 10)', 4326);

查询:

sql
SELECT ST_AsText(geom) FROM table_name;

十三、WKT 与 EPSG#

WKT 本身不包含投影。

通常:

sql
ST_GeomFromText(text, 4326)

其中:

  • 4326 = WGS84

十四、WKT 在 WebGIS 中的应用#

常见场景:

  • OpenLayers
  • Leaflet
  • Cesium
  • GeoServer
  • MapServer

十五、常见错误#

1. Polygon 未闭合#

错误:

text
POLYGON ((0 0, 10 0, 10 10))

正确:

text
POLYGON ((0 0, 10 0, 10 10, 0 0))

2. 坐标顺序错误#

通常:

text
X Y = 经度 纬度

十六、总结#

WKT 是 GIS 和空间数据库中最基础的几何表达方式之一。

掌握 WKT:

  • 有助于理解 GIS 数据结构
  • 有助于学习 PostGIS
  • 有助于 WebGIS 开发
  • 有助于理解 GeoJSON 与空间计算