【ArcGIS/Java】利用ArcGIS的java API连接SDE库、sql操作
来源:互联网 发布:caffe windows github 编辑:程序博客网 时间:2024/06/06 04:38
本文主要讲解一下怎么使用ArcGIS的Java API来连接SDE数据库,以及怎么实现空间数据的查询。
前提:
ArcGIS的空间数据库SDE连接到Oracle的空间数据库中。
java API使用 arcgis
9.2版:http://edndoc.esri.com/arcsde/9.2/api/japi/docs/overview-summary.html
10.0版:http://help.arcgis.com/en/geodatabase/10.0/sdk/arcsde/api/japi/docs/index.html
1,对于取值的问题
row = query.fetch();//只是取一行数据,因此需要循环取值
while(row!=null) {
//other codes
row = query.fetch()
}
2,对于取哪一列
row.getShape(1);
row.getShape(int rownum)//rownum是指第几列
3,整个步骤流程
package test;import java.net.MalformedURLException;import java.sql.Blob;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.esri.sde.sdk.client.SeConnection;import com.esri.sde.sdk.client.SeException;import com.esri.sde.sdk.client.SeLayer;import com.esri.sde.sdk.client.SeQuery;import com.esri.sde.sdk.client.SeRow;import com.esri.sde.sdk.client.SeShape;import com.esri.sde.sdk.client.SeSqlConstruct;import com.esri.sde.sdk.geom.Point;import db.DBConnectionCreater;import net.sf.json.JSONArray;import util.PropertiesUtil;import entity.TaxiInfoBean;public class sdetest { public JSONArray getLocation(){ String server=PropertiesUtil.getProperties("Database", "SDEserver"); String instance=PropertiesUtil.getProperties("Database", "SDEinstance"); String database=PropertiesUtil.getProperties("Database", "SDEdatabase"); String user=PropertiesUtil.getProperties("Database", "SDEuser"); String password=PropertiesUtil.getProperties("Database", "SDEpassword"); SeConnection seconn=null; SeQuery query=null; SeRow row=null; try { seconn=new SeConnection(server,instance,database,user,password);//第一步,连接数据库 SeLayer layerzrq = new SeLayer(seconn, "ZDDX_TAXI", "SHAPE"); String layernamezrq = layerzrq.getName(); SeSqlConstruct sqlConstruct = new SeSqlConstruct(layernamezrq);//第二步,生成sql sqlConstruct.setWhere("class=5 or class=7");//第三步,设置条件 String[] cols = new String[2]; cols[0] = new String("NAME");// cols[1] = layerzrq.getSpatialColumn(); cols[1] = new String("SHAPE"); query = new SeQuery(seconn,cols,sqlConstruct);//第四步,查询 query.prepareQuery(); query.execute(); row = query.fetch();//第五步,取值 SeShape shape=null; double x,y; while (row!=null) {// shape = row.getShape(1).// double x = row.getShape(1).asPoint().generateLabelPoint().getX();//取点坐标// double y = row.getShape(1).asPoint().generateLabelPoint().getY(); double[][][] coor = row.getShape(1).getAllCoords();//对于任意形状(点,线,面)三种数据,取坐标 x = coor[0][0][0]; x = coor[0][0][1]; String name = row.getString(0); row = query.fetch();// System.out.println(x+","+y); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { query.close();//关闭查询 seconn.close();//关闭连接 } catch (SeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }}
其中上面的:
String server=PropertiesUtil.getProperties("Database", "SDEserver"); String instance=PropertiesUtil.getProperties("Database", "SDEinstance"); String database=PropertiesUtil.getProperties("Database", "SDEdatabase"); String user=PropertiesUtil.getProperties("Database", "SDEuser"); String password=PropertiesUtil.getProperties("Database", "SDEpassword");
这里的PropertiesUtil.getProperties()方法是笔者自己写的,读者也可以自己写一部分。
这几个参数配置格式示例如下:
SDEserver=192.168.106.109
SDEinstance=5151
SDEdatabase=orcl
SDEuser=sde
SDEpassword=password
阅读全文
0 0
- 【ArcGIS/Java】利用ArcGIS的java API连接SDE库、sql操作
- 【ArcGIS】利用ArcGIS 的Java API实现SDE数据库的直连和服务连接
- arcgis SDE for Java
- 基于Arcgis的SDE连接时间分析
- 利用SDE的C API对SQL数据库进行操作
- Linux操作系统下配置 ArcGIS Server 连接SDE空间库
- ArcGis连接sde并取数据
- ArcGIS 10.2 SDE连接postgresql配置
- 用arcgis的silverlight API连接Geoserver
- ArcGIS Desktop连接SDE空间数据库和ArcGIS Server注册SDE空间数据库
- ArcGIS SDE数据库版本控制的总结
- ArcGis地图服务连接不上(ArcGIS Server for Java的REST接口无法访问)解决方法
- Arcgis SDE linux 安装
- ArcGIS SDE创建教程
- 利用ArcEngine操作Arcgis中的样式库。
- Arcgis server在solaris和linux上,用直连的方式连接sde的时的配置
- 利用ArcGIS Server REST API实现对Feature的编辑操作
- ArcGIS SDE 10.1 for Postgresql 服务连接配置
- Delphi(Pascal)线程执行任务
- nyoj 460 项链(区间DP)
- 微信小程序踩坑笔记
- MySQL笔记三
- 《大话数据结构》学习笔记(三)
- 【ArcGIS/Java】利用ArcGIS的java API连接SDE库、sql操作
- 获取本地IP地址2
- 一次性批量插入数据库时,导致CPU使用率突然很高,无法成功执行插入
- HttpClient 实际小应用
- USB驱动之主机控制器驱动
- QT学习记录二 (windows窗口创建过程)
- MySQL笔记四
- 蓝牙电路
- 剑指offer-和为s的两个数字VS和为s的连续正数序列