WKT,是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。
以下为几何WKT字串样例:
POINT(6 10)
LINESTRING(3 4,10 50,20 25)
POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))
MULTIPOINT(3.5 5.6, 4.8 10.5)
MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3)))
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
1.Point
点对象, 有一个坐标值,没有长度、面积、边界。
数据格式为『经度(longitude)在前,维度(latitude)在后,用空格分隔』
例: POINT(121.213342 31.234532)
2.LineString
线对象, 由一系列点连接而成。
如果线从头至尾没有交叉,那就是简单的(simple)
如果起点和终点重叠,那就是封闭的(closed)
数据格式为『点与点之间用逗号分隔;一个点中的经纬度用空格分隔,与POINT格式一致』
例:LINESTRING(121.342423 31.542423,121.345664 31.246790,121.453178 31.456862)
3.Polygon
多边形对象。可以是一个实心平面形,即没有内部边界,也可以有空洞,类似纽扣
数据格式为
『实心型: 一个表示外部边界的LineString和0个表示内部边界的LineString组成』
例:
POLYGON((121.342423 31.542423,121.345664 31.246790,121.453178 31.456862),(121.563633 31.566652,121.233565 31.234565,121.568756 31.454367))
『纽扣型: 一个表示外部边界的LineString和多个表示内部边界的LineString组成』例: POLYGON((0 0,10 0, 10 10, 0 10))
Geometry,是一种空间几何数据类型,常用于描述空间几何信息,例如坐标点、线、面、三维信息等。也就是说,GIS管理系统一般使用Geometry数据类型来存储及展示地理信息。JAVA开源库建使用locationtech/**jts**操作Geometry对象。
使用java-jts包中Geometry对象转换成数据库中的Geometry对象,将Geometry对象以十六进制的形式持久化到数据库。
请求数据拿到的数据是标准的WKT数据格式,如
"geom": "LINESTRING (113.452177716 23.452428643, ****, 113.453261328 23.453485433, 113.454189372 23.454333011, 113.457090235 23.456884543, 113.457433558 23.457249216)",