“OpenGIS的说明书中定义了两个表述空间对象的标准方式:一个是WKT(the Well-Known Text)形式,另一个是WKB(the Well-Known Binary)形式。这两种形式都包括对象的类型信息和形成对象的坐标信息。”
下面是用字符来描述要素的空间对象的例子:
POINT(0 0)
LINESTRING(0 0,1 1,1 2)
POLYGON ((90 0,4 0,4 4,0 4,0 0),(1 1 ,2 1, 2 2, 1 2, 1 1))
GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。
GeoJSON中的坐标表现如下:
"geometry": {
"type": "Point",
"coordinates": [102.0, 0.5]
}
"geometry": {
"type": "LineString",
"coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]
}
一般在地图的客户端支持按照GeoJSON的形式进行图层加载,在后端的数据库处理中,一般是支持WKT格式的坐标返回,所以,需要在中间有一个转换过程,当然在新版的PostGIS中,可以直接返回GeoJSON数据。
mapbox 开放js类库,可以将两者的坐标形式进行转换。
github地址:
https://github.com/mapbox/wellknown
wkt和geojson坐标格式:
const {
parse, stringify } = require('wellknown');
let _feature = parse('POINT(1 2)');
let _stringdata = stringify(_feature);
这是nodejs的方式,其他的使用在github上也有对应说明。
参考文章:
GeoJSON说明:
https://baike.baidu.com/item/GeoJson/12011566?fr=aladdin
WKT说明:
https://baike.baidu.com/item/wkt%20ewkt/4299879?fr=aladdin
github类库:
https://github.com/mapbox/wellknown