zoukankan      html  css  js  c++  java
  • java程序操作Geometry对象

    Geometry 空间地理对象,Oracle中存储Geometry对象的字段类型是 MDSYS.SDO_GEOMETRY,在数据库中构建Geometry对象的方法:

    v_pointarray  MDSYS.sdo_ordinate_array;
    MDSYS.SDO_GEOMETRY(2003,
                     20131028,
                     null,
                     MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 1),
                     v_pointarray);

    其中 20131028是空间参考系。

    在java程序中如何读写带有Geometry对象的表呢,常用的geotools工具包。在maven工程中引用jar包jts-1.13.jar

    读取Geometry对象

    在java映射的数据库表实体类对象的字段中添加Geometry类型,如下:

    @Column(name = "GEOM")
    private Geometry geom;

    这样就能读取到Geometry 对象,Geometry 有很多空间计算方法,具体可以查看源码。

    写入Geometry对象

    相对于读取,写入就相对麻烦一些,首先要构建一个Geometry对象,分点线面的构建:

    private GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);

    点的构建

    Envelope e = new Envelope(new Coordinate(x, y));

    线的构建

    LineString line = geometryFactory.createLineString(Coordinate[]);

    line.setSRID(20131028);
    rb.setGeometry(line);

    其中,rb实体类对象的Geometry的定义格式如下:

    @Column(name = "PKG_CONVEX", jdbcType = JdbcType.STRUCT)
    private Geometry geometry;

    一定要指定jdbcType 类型,Oracle数据库中Geometry对象只接收STRUCT类型的数据。

  • 相关阅读:
    css文字两端对齐,而且居中
    vue项目做微信分享总结
    js获取url参数
    vue微信支付遇到的坑
    Win7的环境变量下的系统变量path不小心修改了,怎么恢复
    解决ios上滑动不流畅及滚动条隐藏无效问题
    数组更新检测
    列表渲染
    条件渲染
    vue调试工具的安装
  • 原文地址:https://www.cnblogs.com/cjingzm/p/6044105.html
Copyright © 2011-2022 走看看