在postgis数据库中通常是以二进制wkb的方式进行存储的,但我们在实际使用的时候需要转换成geojson的格式,进行位置信息的描述,虽然在sql语句中有相关的函数,但sql语句毕竟不是太便利,所以想一种方式进行直接的装换.
从网上找了一下教程,找到一些使用mybaits进行空间数据的装换,https://www.jianshu.com/p/e27e28996ad1,但是我用的时候不起作用,可能在某些地方的设置不对.
所以后来就在类对象的set方法中进行修改,通过对set方法进行重新定义,将wkb装换成geometry,然后赋值给该属性
需要在maven中加入的模块
<dependency> <groupId>net.postgis</groupId> <artifactId>postgis-jdbc</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts</artifactId> <version>1.13</version> </dependency>
重新定义的set方法
private String geom; public void setGeom(String geom) throws Exception { // MyGeometryTypeHandler handler = new MyGeometryTypeHandler(); byte[] bytes = WKBReader.hexToBytes(geom); WKBReader wkbReader = new WKBReader(); Geometry geometry = wkbReader.read(bytes); this.geom = geometry.toString(); }
参考文档: