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类型的数据。

  • 相关阅读:
    js项目练习第二课
    js项目练习第一课
    进度条
    js基础
    反射
    递归函数与三级菜单
    mybatis 动态SQL
    java 面对对象(抽象 继承 接口 多态)
    java Eclipse debug技巧
    mybatis 调用存储过程
  • 原文地址:https://www.cnblogs.com/cjingzm/p/6044105.html
Copyright © 2011-2022 走看看