您好,欢迎访问一九零五行业门户网

Java操作Oracle空间信息介绍(SDE)

java对sde操作,首先需要下载sde支持的jar包。jpe92_sdk.jar和jsde92_sdk.jar两个包,这两个包可以从安装的目录下找到。
sde是spatial database engine简写,中文全称:空间数据库引擎。
sde是一种客户/服务器软件,可使空间数据在工业标准的数据库管理系统中存储、管理和快速查询检索。把gis数据放在rdbms中,但是一般的rdbms都没有提供gis的数据类型(如点、线、多边形、以及这些feature之间的拓扑关系和投影坐标等相关信息),rdbms只提供了少量的数据类型支持:int,float,double,,blob,long ,char等,一般都是数字,字符串和二进制数据几种。并且rdbms不仅没有提取对gis数据类型的存储,也没有提供对这些基础类型的操作(如:判断包含关系,相邻、相交、求差、距离、最短路径等)
java对sde操作,首先需要下载sde支持的jar包。jpe92_sdk.jar和jsde92_sdk.jar两个包,这两个包可以从安装的目录下找到。
下面是java获的sde的链接代码:
/**
  * 连接sde服务
  * @return
  */
 public  seconnection getconnection () {
        seconnection conn = null ;
        try {
            conn = new seconnection(sde_server_ip, sde_prot, sde_datebase_sid, sde_username, sde_password);
        } catch (seexception e) {
            return null;
        }
        return conn;
 }
对sde数据进行添加,点线面的新增
/**
  * 添加资源信息点到sde中
  * @param pointbean 坐标点 pojo
  * @param tbname    图层名称
  * @param string typename 所画的类型 1 点 2 线 3 面
  * @return  long  sde的id
  * @throws exception
  */
 public long addpointobject(pointbean pointbean, list columnlist, string tablename, string typename) throws exception {
  selayer insertlayer = null;
  seconnection conn = null;
  long intsertrowid = null;
  seinsert insert = null;
  try {
   conn = this.getconnection();
   insertlayer = new selayer( conn,  tablename, shape);
   if (insertlayer == null) {
    throw new exception(找不到空间表: + tablename);
   }
   conn.starttransaction();
   int arraylength = columnlist.size() + 1 ;
   string[] cols = new string[arraylength];
   cols[0] = shape;
   for (int i = 0 ;i    columnbean columnbean = (columnbean)columnlist.get(i);
    cols[i+1] = columnbean.getname();
   }
   insert = new seinsert(conn);
   insert.intotable(insertlayer.getname(), cols);
   insert.setwritemode(true);
   secoordinatereference coordref = (secoordinatereference) insertlayer.getcoordref();
   seshape shape = new seshape(coordref);
if (1.equals(typename)) {
    this.addpoint(pointbean, shape);
   } else if (2.equals(typename)) {
    this.addline(pointbean, shape);
   } else if (3.equals(typename)) {
    this.addpolygon(pointbean, shape);
   }
   serow row = insert.getrowtoset();
   row.setshape(0, shape);
   for (int i = 0 ;i    columnbean columnbean = (columnbean)columnlist.get(i);
    if (columnbean.gettypeobject() == 1) {
     row.setnstring(i+1, string.valueof(columnbean.getvalobject()));
    } else if (columnbean.gettypeobject() == 2) {
     row.setinteger(i+1, integer.parseint(columnbean.getvalobject().tostring()));
    }else if (columnbean.gettypeobject() == 3) {
     row.setdouble(i+1, double.parsedouble(columnbean.getvalobject().tostring()));
    }
   }
   insert.execute();
   intsertrowid = new long(insert.lastinsertedrowid().longvalue());
   conn.committransaction();
  } catch (exception ex) {
   ex.printstacktrace();
   conn.rollbacktransaction();
  } finally {
   if (insert != null) {
    insert.close();
   }
   if (conn != null) {
    conn.close();
   }
  }
  return intsertrowid;
 }
sde查询接口实现
/**
  * 查询sde
  * @param productid 产品id
  * @throws seexception
  */
 public sequery searchsde (long productid, string tablename) throws seexception {
  seconnection conn = getconnection();
  selayer layer = new selayer( conn,  tablename, shape);
        sesqlconstruct sqlconstruct = new sesqlconstruct(layer.getname());
        if (productid != null) {
         sqlconstruct.setwhere(yid=+productid.intvalue());
        }
        string[] cols = null;
        if (tablename.equals(yu_an_point) || tablename.equals(fang_an_point)) {
            cols = new string[4];
            cols[0] = new string(objectid);
            cols[1] = layer.getspatialcolumn();
            cols[2] = new string(name);
            cols[3] = new string(imagetype);
        } else {
         cols = new string[3];
            cols[0] = new string(objectid);
            cols[1] = layer.getspatialcolumn();
            cols[2] = new string(name);
        }
        system.out.println(cols.length : + cols.length);
        sequery query = new sequery(conn, cols, sqlconstruct );
        query.preparequery();
        query.execute();
        return query;
 }
sde信息删除操作
其它类似信息

推荐信息