- 浏览: 225282 次
- 性别:
- 来自: beijing
文章分类
package com.hdmap.fymas; import java.io.IOException; import com.esri.arcgis.geodatabase.Feature; import com.esri.arcgis.geodatabase.FeatureClass; import com.esri.arcgis.geodatabase.FeatureCursor; import com.esri.arcgis.geodatabase.Field; import com.esri.arcgis.geodatabase.Fields; import com.esri.arcgis.geodatabase.IDataset; import com.esri.arcgis.geodatabase.IDatasetName; import com.esri.arcgis.geodatabase.IEnumDataset; import com.esri.arcgis.geodatabase.IEnumDatasetName; import com.esri.arcgis.geodatabase.IFeatureBuffer; import com.esri.arcgis.geodatabase.IFeatureCursor; import com.esri.arcgis.geodatabase.IWorkspace; import com.esri.arcgis.geodatabase.esriDatasetType; import com.esri.arcgis.geodatabase.esriFieldType; import com.esri.arcgis.geodatabasedistributed.GeoDataServer; import com.esri.arcgis.geometry.IPoint; import com.esri.arcgis.geometry.Point; import com.esri.arcgis.interop.AutomationException; import com.esri.arcgis.server.IServerContext; import com.esri.arcgis.server.IServerObjectManager; import com.esri.arcgis.server.ServerConnection; import com.esri.arcgis.system.Cleaner; import com.esri.arcgis.system.ServerInitializer; public class GeoDataServerMain { private static String user = "cmt";// private static String password = "a";// private static String domain = "172.16.17.156"; private static String host = "172.16.17.156"; private static String servicesName = "qin/usaqiny"; private static ServerConnection conn = null; private static IServerContext serverContext = null; private static IServerObjectManager som = null; private static GeoDataServer gdbserver = null; private static IWorkspace workspace = null; public static void initGeoDataServer() { /*** 连接到ArcGISSever */ try { new ServerInitializer().initializeServer(domain, user, password); conn = new ServerConnection(); conn.connect(host); som = conn.getServerObjectManager(); serverContext = som.createServerContext(servicesName, "GeoDataServer"); gdbserver = (GeoDataServer) serverContext.getServerObject(); workspace = gdbserver.getDefaultWorkingWorkspace(); System.out.print("已连接到ArcGIS Sever"); } catch (Exception e) { e.printStackTrace(); gdbserver = null; workspace = null; som = null; } } public static void main(String[] args) throws Exception { // GeoDataServerMain it = new GeoDataServerMain(); initGeoDataServer(); browseFileGDB(workspace); insertFeaturesUsingCursor(workspace); browseFileGDB(workspace); serverContext.releaseContext(); } /** * 显示所有的图层 * @param workspace */ public static void browseFileGDB(IWorkspace workspace) { try { IEnumDatasetName enumDatasetName = workspace .getDatasetNames(esriDatasetType.esriDTAny); IDatasetName dsName = enumDatasetName.next(); while (dsName != null) { System.out.println("Dataset Name: " + dsName.getName()); dsName = enumDatasetName.next(); } IEnumDataset enumDataset = workspace .getDatasets(esriDatasetType.esriDTFeatureClass); IDataset ds = enumDataset.next(); while (ds != null) { FeatureClass fClass = new FeatureClass(ds); query(fClass); int fCount = fClass.featureCount(null); System.out.println("FeatureClass " + fClass.getAliasName() + " has " + fCount + " features."); ds = enumDataset.next(); } } catch (Exception e) { e.printStackTrace(); } } /**查询数据 * @param featureClass * @throws AutomationException * @throws IOException */ public static void query(FeatureClass featureClass) throws AutomationException, IOException { FeatureCursor featureCursor = new FeatureCursor(featureClass.search( null, true)); Feature feature = (Feature) featureCursor.nextFeature(); Fields fields = (Fields) featureCursor.getFields(); int fieldCount = fields.getFieldCount(); for (int index = 0; index < fieldCount; index++) { Field field = (Field) fields.getField(index); String fieldName = field.getName(); System.out.print(fieldName + "\t"); } System.out.println(); while (feature != null) { StringBuffer row = new StringBuffer(); for (int index = 0; index < fieldCount; index++) { int fieldType = feature.getFields().getField(index).getType(); switch (fieldType) { case esriFieldType.esriFieldTypeDate: case esriFieldType.esriFieldTypeDouble: case esriFieldType.esriFieldTypeGlobalID: case esriFieldType.esriFieldTypeGUID: case esriFieldType.esriFieldTypeInteger: case esriFieldType.esriFieldTypeOID: case esriFieldType.esriFieldTypeSingle: case esriFieldType.esriFieldTypeSmallInteger: case esriFieldType.esriFieldTypeString: row.append(feature.getValue(index) + "\t"); break; case esriFieldType.esriFieldTypeBlob: row.append("(blob)" + "\t"); break; case esriFieldType.esriFieldTypeGeometry: row.append("(geometry)" + "\t"); break; case esriFieldType.esriFieldTypeRaster: row.append("(raster)" + "\t"); break; } } if (row.length() > 0) { System.out.println(row); } feature = (Feature) featureCursor.nextFeature(); } } /** * 插入数据 * @param workspace * @throws Exception */ private static void insertFeaturesUsingCursor(IWorkspace workspace) throws Exception { IEnumDataset enumDataset = workspace .getDatasets(esriDatasetType.esriDTFeatureClass); IDataset ds = enumDataset.next();// 这里就有一个图层,所以就这么写了,应该获得图层然后进行操作 while (ds != null) { FeatureClass featureClass = new FeatureClass(ds); IFeatureBuffer featureBuffer = featureClass.createFeatureBuffer(); IFeatureCursor insertCursor = featureClass .IFeatureClass_insert(false); // 这里是关键 // 不能 Point point= new Point(); IPoint point = (IPoint) serverContext .createObject(Point.getClsid()); point.setX(100); point.setY(200); featureBuffer.setShapeByRef(point); insertCursor.insertFeature(featureBuffer); ds = enumDataset.next(); insertCursor.flush(); Cleaner.release(insertCursor); } } }
package com.hdmap.fymas; import java.io.IOException; import java.util.List; import com.esri.arcgis.carto.FeatureLayer; import com.esri.arcgis.carto.IFeatureLayer; import com.esri.arcgis.geodatabase.Feature; import com.esri.arcgis.geodatabase.FeatureClass; import com.esri.arcgis.geodatabase.FeatureCursor; import com.esri.arcgis.geodatabase.Field; import com.esri.arcgis.geodatabase.Fields; import com.esri.arcgis.geodatabase.IDataset; import com.esri.arcgis.geodatabase.IDatasetName; import com.esri.arcgis.geodatabase.IEnumDataset; import com.esri.arcgis.geodatabase.IEnumDatasetName; import com.esri.arcgis.geodatabase.IFeatureBuffer; import com.esri.arcgis.geodatabase.IFeatureClass; import com.esri.arcgis.geodatabase.IFeatureCursor; import com.esri.arcgis.geodatabase.IWorkspace; import com.esri.arcgis.geodatabase.esriDatasetType; import com.esri.arcgis.geodatabase.esriFieldType; import com.esri.arcgis.geodatabasedistributed.GeoDataServer; import com.esri.arcgis.geometry.IPoint; import com.esri.arcgis.geometry.Point; import com.esri.arcgis.interop.AutomationException; import com.esri.arcgis.server.IServerContext; import com.esri.arcgis.server.IServerObjectManager; import com.esri.arcgis.server.ServerConnection; import com.esri.arcgis.system.Cleaner; import com.esri.arcgis.system.ServerInitializer; import com.hdmap.fymas.fire.bean.FirePoint; import com.hdmap.fymas.utils.ReadFromFileUtil; public class GeoDataServerMain { private static String user = "cmt";// private static String password = "a";// private static String domain = "172.16.17.156"; private static String host = "172.16.17.156"; private static String servicesName = "qin/usaqiny"; private static ServerConnection conn = null; private static IServerContext serverContext = null; private static IServerObjectManager som = null; private static GeoDataServer gdbserver = null; private static IWorkspace workspace = null; public static void initGeoDataServer() { /*** 连接到ArcGISSever */ try { new ServerInitializer().initializeServer(domain, user, password); conn = new ServerConnection(); conn.connect(host); som = conn.getServerObjectManager(); serverContext = som.createServerContext(servicesName, "GeoDataServer"); gdbserver = (GeoDataServer) serverContext.getServerObject(); workspace = gdbserver.getDefaultWorkingWorkspace(); System.out.print("已连接到ArcGIS Sever"); } catch (Exception e) { e.printStackTrace(); gdbserver = null; workspace = null; som = null; } } public static void main(String[] args) throws Exception { // GeoDataServerMain it = new GeoDataServerMain(); initGeoDataServer(); browseFileGDB(workspace); String fileName = "D:/FIR_PLST_FY3A_MERSI_1000M_EJ_P001_20110426024500.TXT"; List alist = ReadFromFileUtil.readFirePointByLines(fileName); System.out.println(alist); // insertFeaturesUsingCursor(workspace); insertFirePoint(workspace, alist); browseFileGDB(workspace); serverContext.releaseContext(); } /** * 插入数据 * * @param workspace * @throws Exception */ @SuppressWarnings("unused") private static void insertFeaturesUsingCursor(IWorkspace workspace, String featureName) throws Exception { FeatureClass featureClass = getFeatureClassByName(workspace, featureName); IFeatureBuffer featureBuffer = featureClass.createFeatureBuffer(); IFeatureCursor insertCursor = featureClass.IFeatureClass_insert(false); // 这里是关键 // 不能 Point point= new Point(); IPoint point = (IPoint) serverContext.createObject(Point.getClsid()); point.setX(100); point.setY(200); featureBuffer.setShapeByRef(point); insertCursor.insertFeature(featureBuffer); insertCursor.flush(); Cleaner.release(insertCursor); } /** * 根据FeatureClassName 获得FeatureClass * * @param workspace * @param FeatureClassName * @return * @throws AutomationException * @throws IOException */ public static FeatureClass getFeatureClassByName(IWorkspace workspace, String FeatureClassName) throws AutomationException, IOException { IEnumDataset enumDataset = workspace .getDatasets(esriDatasetType.esriDTFeatureClass); IDataset ds = enumDataset.next();// FeatureClass featureClass = null; while (ds != null) { if (FeatureClassName.equals(ds.getName())) { featureClass = new FeatureClass(ds); } ds = enumDataset.next(); } return featureClass; } /** * 显示所有的图层 * * @param workspace */ public static void browseFileGDB(IWorkspace workspace) { try { IEnumDatasetName enumDatasetName = workspace .getDatasetNames(esriDatasetType.esriDTAny); IDatasetName dsName = enumDatasetName.next(); while (dsName != null) { System.out.println("Dataset Name: " + dsName.getName()); dsName = enumDatasetName.next(); } IEnumDataset enumDataset = workspace .getDatasets(esriDatasetType.esriDTFeatureClass); IDataset ds = enumDataset.next(); while (ds != null) { FeatureClass fClass = new FeatureClass(ds); query(fClass); int fCount = fClass.featureCount(null); System.out.println("FeatureClass " + fClass.getAliasName() + " has " + fCount + " features."); ds = enumDataset.next(); } } catch (Exception e) { e.printStackTrace(); } } /** * 查询数据 * * @param featureClass * @throws AutomationException * @throws IOException */ public static void query(FeatureClass featureClass) throws AutomationException, IOException { FeatureCursor featureCursor = new FeatureCursor(featureClass.search( null, true)); Feature feature = (Feature) featureCursor.nextFeature(); Fields fields = (Fields) featureCursor.getFields(); int fieldCount = fields.getFieldCount(); for (int index = 0; index < fieldCount; index++) { Field field = (Field) fields.getField(index); String fieldName = field.getName(); System.out.print(fieldName + "\t"); } System.out.println(); while (feature != null) { StringBuffer row = new StringBuffer(); for (int index = 0; index < fieldCount; index++) { int fieldType = feature.getFields().getField(index).getType(); switch (fieldType) { case esriFieldType.esriFieldTypeDate: case esriFieldType.esriFieldTypeDouble: case esriFieldType.esriFieldTypeGlobalID: case esriFieldType.esriFieldTypeGUID: case esriFieldType.esriFieldTypeInteger: case esriFieldType.esriFieldTypeOID: case esriFieldType.esriFieldTypeSingle: case esriFieldType.esriFieldTypeSmallInteger: case esriFieldType.esriFieldTypeString: row.append(feature.getValue(index) + "\t"); break; case esriFieldType.esriFieldTypeBlob: row.append("(blob)" + "\t"); break; case esriFieldType.esriFieldTypeGeometry: row.append("(geometry)" + "\t"); break; case esriFieldType.esriFieldTypeRaster: row.append("(raster)" + "\t"); break; } } if (row.length() > 0) { System.out.println(row); } feature = (Feature) featureCursor.nextFeature(); } } /** * 插入火点数据 * * @param workspace * @throws Exception */ @SuppressWarnings("unused") private static void insertFirePoint(IWorkspace workspace, List<FirePoint> fpList) throws Exception { // IEnumDataset enumDataset = workspace // .getDatasets(esriDatasetType.esriDTFeatureClass); // IDataset ds = enumDataset.next();// 这里就有一个图层,所以就这么写了,应该获得图层然后进行操作 String fName = "fire_p"; // while (ds != null) { FeatureClass featureClass = getFeatureClassByName(workspace, fName); // FeatureClass featureClass = new FeatureClass(ds); IFeatureBuffer featureBuffer = featureClass.createFeatureBuffer(); IFeatureCursor insertCursor = featureClass.IFeatureClass_insert(false); for (int i = 0; i < fpList.size(); i++) { // 这里是关键 FirePoint fp = fpList.get(i); IPoint point = (IPoint) serverContext .createObject(Point.getClsid()); point.setX(fp.getX()); point.setY(fp.getY()); featureBuffer.setShapeByRef(point); insertCursor.insertFeature(featureBuffer); } // ds = enumDataset.next(); insertCursor.flush(); Cleaner.release(insertCursor); // } } }
发表评论
-
二进制 授权管理 java
2013-09-09 12:52 862package org.qincy.binary; ... -
com.richfit.bi.quartz 定时执行示例
2013-04-12 15:39 01 内含jetty 配置,下载jetty 依赖包,算了,还是提 ... -
geoserver 在liunix 系统下 地图乱码问题解决
2013-01-04 13:20 1160... -
openscales1.2 实现加载arcgis 切片
2012-09-14 12:30 2453package org.openscales.core.lay ... -
重写openalyers 的方法,加载天地图瓦片数据
2012-06-20 09:16 6270将TiandituLayer 加载到OpenLayers.js ... -
利用工具将shp文件导入到oracle spatial中
2012-05-21 14:20 43351 下载shp2sdo 工具,将工具放在 oracle按照目录 ... -
oracle s
2012-06-20 09:18 921<pre name="code" c ... -
oracle spatial 空间数据学习
2012-05-17 16:09 1751最近项目使用 空间数据库 oracle spatial ... -
在ArcGIS 10 Desktop中打开Google Map,BingMap
2012-04-13 15:56 1514安装使用: 1 双击ArcBruTile_0.2.zip ... -
Arcgis object for java 访问栅格数据,使用GP工具,进行栅格矢量化---栅格矢量化面。
2012-06-20 09:17 4058直接贴代码了,不多解释了。 1、栅格数据的 ... -
svn 删除注册表
2012-02-11 12:02 1442svn 删除注册表 -
Flex BlazeDS java 项目
2011-12-12 17:21 1045根据网上的例子 ,写的 flex BlazeDS 框架与 ... -
ArcObject中的游标Cursor的理解
2011-05-04 10:48 1254cursor给人的第一 ... -
esri arcobj 开发for java
2011-04-15 14:04 10541、查找数据 1)、利用FeaturCursor进行空间查询 ... -
ESRI Flex GIS开发连载(1) ---环境搭建
2011-03-25 10:29 18371首先 用 argis server 发布一个 s ... -
工具类
2011-02-18 14:05 946英文数字转换为 中文数字 public class Mon ... -
junit 4 spring 自动化测试
2010-12-13 16:08 16061 添加jar ,依赖jar 包围 spring-test, ... -
在tomcat 发布,去掉项目名称
2010-11-17 09:53 19281 找到 server.xml 配置= ... -
掉字段内容包含的空格
2010-09-27 10:17 948使用replace函数去掉字段内容包含的空格,例子如下: up ... -
无聊的jsti 的fn 函数(资料备份)
2010-09-25 17:16 948无聊的jsti 的fn 函数(资料备份) ...
相关推荐
C/S平台下通过C#连接ArcGIS Server服务
如果Web站点和ArcGIS Server服务不在同一机器上,但Web站点的机子需要访问服务时,或者是多人开发时用同一台机子的服务时,需要对ArcGIS Server端(服务器端)及Web站点(客户端)进行配置。
基于C#编写的ArcGIS Server 地图服务的启动、停止、重启动等的脚本工具,参数描述如下: AGSSOM [usage]: {server} [-s|start, -x|stop, -r|restart -list|list_services -listtypes|list_server_types -describe|...
亲,你还在为手动重启ArcGis服务而困恼吗?现在5分就能解决您的困恼
ArcGis server服务迁移,不用再一个一个的重新发服务,新装好server服务器后,只需三步即可迁移,简单方便
ArcGIS Server服务器对象扩展(SOE)开发
ArcGIS Server服务类型中文介绍
openlayers 调用 arcgis server wms服务简单图解 java net
用Arcgis Server 提供的 REST API 直接调用Arcgis Server 服务状态
访问ArcGIS server服务的ArcEngine网络分析服务,包含路径分析以及路径分析信息展示,包含路径的道路信息以及路径的方向信息,比较全的导航信息。
ArcGIS Server服务器对象扩展,ArcGIS Server服务器对象扩展
Arcgis Server 动态加载图层 Arcgis Server 9.3 C#
ArcGIS Server缓存地图服务设计部署及应用
1、停掉ArcGIS Server的服务。 2、 打开<ArcGIS Server> \framework\runtime\tomcat\conf\web.xml,注册跨域bean 3、lib下拷贝 cors-filter-2.5.jar java-property-utils-1.9.1.jar包 4、启动ArcGIS Server的服务。 5...
如何在OsgEarth中加载谷歌卫星地图的ArcGISServer服务教程
提供ARCGIS Server服务接口设计的思路,可以为开发者提供一些指导
ArcGIS Server 10.4许可文件,arcgisserver服务程序正常运行需要的许可文件。
ArcGIS Server for .NET Framework迁移策略 服务器迁移 服务迁移 应用迁移 其它 ArcGIS Server for Java 迁移策略 服务器迁移 服务迁移 应用迁移
arcgis serv服务器端的SOE 2012年中国ESRI大会资料
arcgis server 10.7.1 安装包