GIS開發(fā):GeoJSON坐標(biāo)和WKT的轉(zhuǎn)換
“OpenGIS的說(shuō)明書中定義了兩個(gè)表述空間對(duì)象的標(biāo)準(zhǔn)方式:一個(gè)是WKT(the Well-Known Text)形式,另一個(gè)是WKB(the Well-Known Binary)形式。這兩種形式都包括對(duì)象的類型信息和形成對(duì)象的坐標(biāo)信息?!?/span>
下面是用字符來(lái)描述要素的空間對(duì)象的例子:?
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是一種對(duì)各種地理數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼的格式,基于Javascript對(duì)象表示法的地理空間信息數(shù)據(jù)交換格式。GeoJSON對(duì)象可以表示幾何、特征或者特征集合。
GeoJSON中的坐標(biāo)表現(xiàn)如下:?
?"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的形式進(jìn)行圖層加載,在后端的數(shù)據(jù)庫(kù)處理中,一般是支持WKT格式的坐標(biāo)返回,所以,需要在中間有一個(gè)轉(zhuǎn)換過(guò)程,當(dāng)然在新版的PostGIS中,可以直接返回GeoJSON數(shù)據(jù)。
mapbox 開放js類庫(kù),可以將兩者的坐標(biāo)形式進(jìn)行轉(zhuǎn)換。
github地址:
https://github.com/mapbox/wellknownwkt和geojson坐標(biāo)格式:
?const { parse, stringify } = require('wellknown');
let _feature = parse('POINT(1 2)');
let _stringdata = stringify(_feature);
這是nodejs的方式,其他的使用在github上也有對(duì)應(yīng)說(shuō)明。
參考文章:
GeoJSON說(shuō)明:
https://baike.baidu.com/item/GeoJson/12011566?fr=aladdin?
WKT說(shuō)明:
https://baike.baidu.com/item/wkt%20ewkt/4299879?fr=aladdin? ?
github類庫(kù):?
https://github.com/mapbox/wellknown