利用Java进行AcrSDE开发实例【转载】
2008-07-07 18:40
441 查看
利用Java进行AcrSDE开发实例【转载】
http://www.gispark.com/html/GIS-Spatial-Database/2007/1227/2002.html
利用Java进行AcrSDE开发实例:
ArcSDE提供了C API和Java API两种接口。这里我们只导论如何通过Java API进行arcSDE开发。
开发环境:
JDK 1.5
WIN 插P
Eclipse 3.1+MyEclipse
ArcSDE for Oracle 9i
(1)把arcSDE java API所需要的三个jar包导到web\lib目录,包括jsde90_sdk.jar,jpe90_sdk.jar ,concurrent.jar;
(2)添加点:
public class AddPointBean {
public static boolean process(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map map=null;
if (request.getSession().getAttribute(StaticConstant.SESSION_MAP) == null) {
String strErr = "地图还没有初始化";
request.setAttribute(StaticConstant.REQUEST_ERROR, strErr); 字串3
return false;
}
map=(Map)request.getSession().getAttribute(StaticConstant.SESSION_MAP);
//连接SDE
SeConnection conn = null;
String server = "menglikunm";
int instance = 5151;
String database = "ora";
String user = "sde";
String password = "sde";
SeLayer insertLayer=null;
try {
conn = new SeConnection(server, instance, database, user, password);
字串1
Vector layerList = conn.getLayers();
for (int index = 0; index < layerList.size(); index++) {
SeLayer layer = (SeLayer) layerList.elementAt(index);
// Displays the layer’s name
System.out.println(layer.getName());
// Displays the layer’s ID
System.out.println(layer.getID().longValue());
// Displays the layer’s spatial column name
字串7
System.out.println(layer.getSpatialColumn());
if(layer.getName().equalsIgnoreCase("ZHENGFUJIGUAN")){
insertLayer=layer;
}
}
} catch (SeException e) {
e.printStackTrace();
return false;
}
//开始插入数据
try{ 字串6
conn.startTransaction();
String[] cols = new String[2];
cols[0] = new String("NAME");
cols[1] = insertLayer.getSpatialColumn();
SeInsert insert = new SeInsert(conn);
insert.intoTable(insertLayer.getName(),cols);
insert.setWriteMode(true);
SeCoordinateReference coordref =(SeCoordinateReference)insertLayer.getCoordRef();
SeShape shape = new SeShape(coordref);
double x=map.toMapPoint(10,10).getX();
字串9
double y=map.toMapPoint(10,10).getY();
int numPts = 1;
SDEPoint[] ptArray = new SDEPoint[numPts];
ptArray[0] = new SDEPoint(x, y);
shape.generatePoint(numPts, ptArray);
SeRow row = insert.getRowToSet();
row.setString(0, "测验点");
row.setShape(1,shape);
insert.execute(); 字串7
insert.close();
conn.commitTransaction();
conn.close();
}catch(Exception ex){
conn.rollbackTransaction();
conn.close();
ex.printStackTrace();
}
return true;
}
}(3)删除点:
public class DeletePointBean {
public static boolean process(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//连接SDE
字串5
SeConnection conn = null;
String server = "menglikunm";
int instance = 5151;
String database = "ora";
String user = "sde";
String password = "sde";
try {
conn = new SeConnection(server, instance, database, user, password);
Vector layerList = conn.getLayers();
for (int index = 0; index < layerList.size(); index++) {
SeLayer layer = (SeLayer) layerList.elementAt(index); 字串5
// Displays the layer’s name
System.out.println(layer.getName());
// Displays the layer’s ID
System.out.println(layer.getID().longValue());
// Displays the layer’s spatial column name
System.out.println(layer.getSpatialColumn());
}
} catch (SeException e) {
e.printStackTrace();
字串8
return false;
}
//开始删除数据
try{
conn.startTransaction();
SeDelete delete=new SeDelete(conn);
SeObjectId id=new SeObjectId(641);
delete.byId("ZHENGFUJIGUAN",id);
conn.commitTransaction();
delete.close();
}catch(Exception ex){
conn.rollbackTransaction(); 字串4
conn.close();
ex.printStackTrace();
}
return true;
}
}
http://www.gispark.com/html/GIS-Spatial-Database/2007/1227/2002.html
利用Java进行AcrSDE开发实例:
ArcSDE提供了C API和Java API两种接口。这里我们只导论如何通过Java API进行arcSDE开发。
开发环境:
JDK 1.5
WIN 插P
Eclipse 3.1+MyEclipse
ArcSDE for Oracle 9i
(1)把arcSDE java API所需要的三个jar包导到web\lib目录,包括jsde90_sdk.jar,jpe90_sdk.jar ,concurrent.jar;
(2)添加点:
public class AddPointBean {
public static boolean process(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map map=null;
if (request.getSession().getAttribute(StaticConstant.SESSION_MAP) == null) {
String strErr = "地图还没有初始化";
request.setAttribute(StaticConstant.REQUEST_ERROR, strErr); 字串3
return false;
}
map=(Map)request.getSession().getAttribute(StaticConstant.SESSION_MAP);
//连接SDE
SeConnection conn = null;
String server = "menglikunm";
int instance = 5151;
String database = "ora";
String user = "sde";
String password = "sde";
SeLayer insertLayer=null;
try {
conn = new SeConnection(server, instance, database, user, password);
字串1
Vector layerList = conn.getLayers();
for (int index = 0; index < layerList.size(); index++) {
SeLayer layer = (SeLayer) layerList.elementAt(index);
// Displays the layer’s name
System.out.println(layer.getName());
// Displays the layer’s ID
System.out.println(layer.getID().longValue());
// Displays the layer’s spatial column name
字串7
System.out.println(layer.getSpatialColumn());
if(layer.getName().equalsIgnoreCase("ZHENGFUJIGUAN")){
insertLayer=layer;
}
}
} catch (SeException e) {
e.printStackTrace();
return false;
}
//开始插入数据
try{ 字串6
conn.startTransaction();
String[] cols = new String[2];
cols[0] = new String("NAME");
cols[1] = insertLayer.getSpatialColumn();
SeInsert insert = new SeInsert(conn);
insert.intoTable(insertLayer.getName(),cols);
insert.setWriteMode(true);
SeCoordinateReference coordref =(SeCoordinateReference)insertLayer.getCoordRef();
SeShape shape = new SeShape(coordref);
double x=map.toMapPoint(10,10).getX();
字串9
double y=map.toMapPoint(10,10).getY();
int numPts = 1;
SDEPoint[] ptArray = new SDEPoint[numPts];
ptArray[0] = new SDEPoint(x, y);
shape.generatePoint(numPts, ptArray);
SeRow row = insert.getRowToSet();
row.setString(0, "测验点");
row.setShape(1,shape);
insert.execute(); 字串7
insert.close();
conn.commitTransaction();
conn.close();
}catch(Exception ex){
conn.rollbackTransaction();
conn.close();
ex.printStackTrace();
}
return true;
}
}(3)删除点:
public class DeletePointBean {
public static boolean process(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//连接SDE
字串5
SeConnection conn = null;
String server = "menglikunm";
int instance = 5151;
String database = "ora";
String user = "sde";
String password = "sde";
try {
conn = new SeConnection(server, instance, database, user, password);
Vector layerList = conn.getLayers();
for (int index = 0; index < layerList.size(); index++) {
SeLayer layer = (SeLayer) layerList.elementAt(index); 字串5
// Displays the layer’s name
System.out.println(layer.getName());
// Displays the layer’s ID
System.out.println(layer.getID().longValue());
// Displays the layer’s spatial column name
System.out.println(layer.getSpatialColumn());
}
} catch (SeException e) {
e.printStackTrace();
字串8
return false;
}
//开始删除数据
try{
conn.startTransaction();
SeDelete delete=new SeDelete(conn);
SeObjectId id=new SeObjectId(641);
delete.byId("ZHENGFUJIGUAN",id);
conn.commitTransaction();
delete.close();
}catch(Exception ex){
conn.rollbackTransaction(); 字串4
conn.close();
ex.printStackTrace();
}
return true;
}
}
相关文章推荐
- JAVAWEB开发之Hibernate详解(三)——Hibernate的检索方式、抓取策略以及利用二级缓存进行优化、解决数据库事务并发问题
- 【java开发部署】利用svn及ocaml及unison进行javaweb网站部署
- 《转载》IntelliJ 2016.2 IDEA 中进行 Java Web 项目开发配置
- [转]利用docker进行java开发小demo
- java 利用JAX-RS快速开发RESTful 服务实例
- [转载]如何利用虚拟机(VMWare)进行iPhone开发
- 利用JasperReport+iReport进行Web报表开发(java)
- 我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理
- Java程序中利用swing.GroupLayout进行布局有关管理器的实例讲解
- Java学习之路——利用JDOM对xml文档进行解析等操作实例
- 转载:如何利用Vim进行Erlang开发
- Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改--转载
- 转载------ 利用 Java dump 进行 JVM 故障诊断
- 【转载】android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- java netty socket库和自定义C#socket库利用protobuf进行通信完整实例
- JAVAWEB开发之Hibernate详解(三)——Hibernate的检索方式、抓取策略以及利用二级缓存进行优化、解决数据库事务并发问题
- 利用Java编写简单的WebService实例-转载
- 利用Java进行串口通讯开发
- 利用java在服务器和客服端建立连接,进行通讯(代码实例)
- Java实现:利用栈进行后缀表达式计算实例