PostGIS的Geometry对象在数据库里存储的格式——WKB

OGC定义了两种描述几何对象的格式,分别是WKB(Well-Known Binary)和WKT(Well-Known Text)。
直接用sql查询出来的格式就是wkb,是16进制的数据,可以通过postgis自带的ST_ASText函数转为WKT;
也可以使用GeoTools将wkb转为wkt,代码如下:

package com.example.demo;

import org.geotools.geometry.jts.WKBReader;
import org.junit.jupiter.api.Test;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;

class DemoApplicationTests {


	@Test
	public void parseWKB() throws ParseException {
		String wkb = "01030000000100000025000000DEE4938F4CC55D408E32072FDFF640405DEA9A8F4CC55D40E1C42C2FDFF64040D24EA58F4CC55D40E6124F2FDFF640406FB5B28F4CC55D4040EA6C2FDFF6404085A6C28F4CC55D406D40852FDFF64040B493D48F4CC55D40153C972FDFF64040E3DCE78F4CC55D409E3CA22FDFF64040D7D5FB8F4CC55D40C5DFA52FDFF640402FCC0F904CC55D400F05A22FDFF64040BFE0A0F161F25D40218BA37A8DE540404114B6F161F25D407BBF967A8DE540405584C9F161F25D40A286817A8DE54040505DDAF161F25D40B0C7647A8DE54040BBE7E7F161F25D40ADBB417A8DE540402390F1F161F25D403DE0197A8DE540405CEDF6F161F25D4068E7EE798DE54040FCC4F7F161F25D4020A5C2798DE54040D70DF4F161F25D405BFB96798DE54040A926A1950CE85D407989454C6B9B40403A079A950CE85D402C40204C6B9B40400B948F950CE85D40A93EFE4B6B9B4040882982950CE85D40AFB1E04B6B9B4040573E72950CE85D40989EC84B6B9B4040425F60950CE85D404EDAB64B6B9B4040582A4D950CE85D40F401AC4B6B9B4040754939950CE85D407275A84B6B9B4040696C25950CE85D402D54AC4B6B9B4040B35FED4943BB5D40A784D589A9AC40409E46D84943BB5D40353FE289A9AC4040E8EBC44943BB5D406B52F789A9AC40404520B44943BB5D4009DB138AA9AC4040D098A64943BB5D405FA5368AA9AC40406CE79C4943BB5D40463A5E8AA9AC40409F74974943BB5D40EFEE888AA9AC4040287B964943BB5D40D8F6B48AA9AC40408A059A4943BB5D403877E08AA9AC4040DEE4938F4CC55D408E32072FDFF64040";
		byte[] aux = WKBReader.hexToBytes(wkb);
		Geometry geom = new WKBReader().read(aux);
		String wkt = geom.toText();
		System.out.println(wkt);
	}

}
posted @ 2022-12-23 15:40  iminifly  阅读(874)  评论(0编辑  收藏  举报