我正在尝试学习如何在Spring Boot应用程序中使用GIS数据。我已经在互联网上关注了一些教程和示例,并且能够将一些数据保存在空间数据库中,但是我遇到了问题。
如果我从邮递员发送数据,则GEOM信息将按我在实体上定义的名称保存为bytea在名为point的字段中,如下所示:
networks.shinyproxy-net.external.name
当邮递员发送的数据为"\254\355\000\005sr\000!com.vividsolutions.jts.geom.PointD\007{\255\026\034\273*\002\000\001L\000\013coordinatest\0000Lcom/vividsolutions/jts/geom/CoordinateSequence;xr\000$com.vividsolutions.jts.geom.Geometryy\236\244e"\205J>\002\000\004I\000\004SRIDL\000\ (...)"
时。
我正在使用此方法保存信息:
POINT (3.8 5.7)
这是实体:
@Override public void registerPoint(String userId, String point) {
startsOperation();
Points pointEntity =new Points();
pointEntity.setPointName("test");
pointEntity.setUserId("12345");
try {
pointEntity.setPoint((Point) wktToGeometry(point));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
session.save(pointEntity);
tx.commit();
session.close();
}
private Geometry wktToGeometry(String wellKnownText)
throws ParseException {
return new WKTReader().read(wellKnownText);
}
}
我没有使用@Column来自动生成表格的字段
这样存储geom信息没有任何问题,但是当我用另一种方法获取点时却遇到了问题,因为我想将坐标发送到前端。
有什么解决办法吗?