什么是WKT格式?
WKT(Well-Known Text)是一种用于描述地理空间几何对象的文本格式。
这种格式是由Open Geospatial Consortium(OGC)定义并维护的一种开放标准,主要用于在不同的GIS系统和数据库之间交换空间数据。
WKT格式使用简单的ASCII文本来表示各种类型的几何对象,如点、线、多边形等。它具有易于阅读和编写的特点,并且由于其纯文本性质,可以方便地在网络上传输。
WKT几何对象类型
WKT支持以下几种基本几何对象类型:
Point(点)
表示一个单一的位置。
示例:POINT (10 20)
LineString(线串)
表示一系列有序的点,形成一条线。
示例:LINESTRING (10 10, 20 20, 30 30)
Polygon(多边形)
表示一个封闭的区域,由一系列有序的点组成,最后一个点与第一个点相连。
示例:POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
MultiPoint(多点)
表示多个独立的点。
示例:MULTIPOINT ((10 10), (20 20), (30 30))
MultiLineString(多线串)
表示多个独立的线串。
示例:MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))
MultiPolygon(多边形集)
表示多个独立的多边形。
示例:MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))
GeometryCollection(几何对象集)
表示一个几何对象的集合,其中可以包含上述任何类型的几何对象。
示例:GEOMETRYCOLLECTION (POINT (10 10), LINESTRING (20 20, 30 30))
除了这些基本的几何类型之外,WKT还可以表示更复杂的几何对象,如TIN(不规则三角网)和多面体。
几何类型 | WKT格式 |
---|---|
Point | POINT (30 10) |
LineString | LINESTRING (30 10, 10 30, 40 40) |
Polygon | POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) |
Polygon | POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30)) |
MultiPoint | MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) |
MultiPoint | MULTIPOINT (10 40, 40 30, 20 20, 30 10) |
MultiLineString | MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10)) |
MultiPolygon | MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5))) |
MultiPolygon | MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20))) |
WKT的使用场景
WKT格式常用于以下情况:
交换地理空间数据。
在GIS软件中导入导出数据。
存储在支持空间数据的数据库中。
在Web服务中传输空间数据。
什么是WKB格式
WKB(well-known binary) 是WKT的二进制表示形式,解决了WKT表达方式冗余的问题,便于传输和在数据库中存储相同的信息WKB是采用二进制存储表示点线面等。
WKB比WKT的优势在于WKB是二进制,主要是解决传输和存储的效率问题,所以MySQL,Postgre数据存储Geometry类型的数据,存储的值是WKB格式的。