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
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
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信息删除操作

本文介紹了MySQL的“無法打開共享庫”錯誤。 該問題源於MySQL無法找到必要的共享庫(.SO/.DLL文件)。解決方案涉及通過系統軟件包M驗證庫安裝

本文探討了Docker中的優化MySQL內存使用量。 它討論了監視技術(Docker統計,性能架構,外部工具)和配置策略。 其中包括Docker內存限制,交換和cgroups

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

本文比較使用/不使用PhpMyAdmin的Podman容器直接在Linux上安裝MySQL。 它詳細介紹了每種方法的安裝步驟,強調了Podman在孤立,可移植性和可重複性方面的優勢,還

本文提供了SQLite的全面概述,SQLite是一個獨立的,無服務器的關係數據庫。 它詳細介紹了SQLite的優勢(簡單,可移植性,易用性)和缺點(並發限制,可伸縮性挑戰)。 c

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

本指南展示了使用自製在MacOS上安裝和管理多個MySQL版本。 它強調使用自製裝置隔離安裝,以防止衝突。 本文詳細詳細介紹了安裝,起始/停止服務和最佳PRA

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器