为什么将几何图形作为字节保存在数据库中?

时间:2019-04-21 16:18:56

标签: postgresql hibernate jpa postgis

我正在尝试学习如何在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信息没有任何问题,但是当我用另一种方法获取点时却遇到了问题,因为我想将坐标发送到前端。

有什么解决办法吗?

0 个答案:

没有答案