shp文件批量导入SDE

仿照ArcGIS的数据导入功能做了个简易的数据导入界面:

需要注意的问题:上篇博文中的要素类导入函数要变成静态函数,不然会报错。原因我想可能是因为非静态函数导入时,workspace与workspacefactory等类型变量未释放,希望了解的童鞋留言讨论哈。

下面给出全部源码:

  public partial class ImportDataToSDE:DevComponents.DotNetBar.Office2007Form{#region 类成员变量public IGlobeControl globeControl = null;public IScene scene = null;public IWorkspace sdeWorkspace = null;public IFeatureWorkspace featureWorkspace = null; //矢量工作空间public IRasterWorkspace rasterWorkspace = null;//栅格工作空间public IFeatureDataset featureDataset = null;  //矢量数据集public IRasterDataset rasterDataset = null; //栅格数据集public List<IFeatureLayer> featurelayerList;public List<IRasterLayer> rasterlayerList;public string layerType = "";//图层类型public string outPutLayerName = "";//导出图层名称public string selectedDataSet_list = "";//listbox选中的图层#endregion//构造public ImportDataToSDE (IWorkspace ws,IGlobeControl globeControl){this.sdeWorkspace = ws;this.globeControl = globeControl;this.scene = globeControl.GlobeDisplay.Scene;this.featurelayerList = new List<IFeatureLayer>();this.rasterlayerList = new List<IRasterLayer>();InitializeComponent();}//loadprivate void ImportDataToSDE_Load (object sender,EventArgs e){IAoInitialize initAO = new AoInitializeClass();initAO.Initialize((esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB));}//填充comboxprivate void comboBox_DataType_SelectedIndexChanged (object sender,EventArgs e){try{layerType = comboBox_DataType.Text.ToString();featurelayerList.Clear();rasterlayerList.Clear();loadAllLayers();if(layerType == "矢量数据"){for(int i = 0;i < featurelayerList.Count;i++){comboBox_DataSet.Items.Add(featurelayerList[i].Name);}}else if(layerType == "栅格数据"){for(int i = 0;i < rasterlayerList.Count;i++){comboBox_DataSet.Items.Add(rasterlayerList[i].Name);}}}catch(System.Exception ex){MessageBox.Show(ex.Message);}}//加载所有图层public void loadAllLayers (){try{for(int i = 0;i < scene.LayerCount;i++){ILayer layer = scene.get_Layer(i);if(layer is IFeatureLayer){featurelayerList.Add(layer as IFeatureLayer);}else{rasterlayerList.Add(layer as IRasterLayer);}}}catch(System.Exception ex){MessageBox.Show(ex.Message);}}//选择导出图层private void comboBox_DataSet_SelectedIndexChanged (object sender,EventArgs e){outPutLayerName = comboBox_DataSet.Text.ToString();}// 根据名称获取图层private ILayer GetLayerByName (string strLayerName){ILayer pLayer = null;for(int i = 0;i < scene.LayerCount;i++){pLayer = scene.get_Layer(i);if(strLayerName == pLayer.Name){break;}}return pLayer;}//添加导出数据集private void button_AddDS_Click (object sender,EventArgs e){try{if(comboBox_DataSet.Text != ""){listBox_SelectDataSet.Items.Add(comboBox_DataSet.Text);}else{MessageBox.Show("未选中导出数据集");}}catch(System.Exception ex){MessageBox.Show(ex.Message + " 添加失败!");}}private void listBox_SelectDataSet_SelectedIndexChanged (object sender,EventArgs e){if(listBox_SelectDataSet.SelectedIndex != -1){selectedDataSet_list = listBox_SelectDataSet.Items[listBox_SelectDataSet.SelectedIndex].ToString();}}//移除数据集private void button_RemoveDS_Click (object sender,EventArgs e){try{listBox_SelectDataSet.Items.Remove(listBox_SelectDataSet.SelectedIndex);listBox_SelectDataSet.Refresh();}catch(System.Exception ex){MessageBox.Show("移除数据集失败!");}}//导入private void button_import_Click (object sender,EventArgs e){try{if(layerType == "矢量数据"){for(int i = 0;i < listBox_SelectDataSet.Items.Count;i++){IFeatureLayer featurelayer = new FeatureLayerClass();featurelayer = GetLayerByName(listBox_SelectDataSet.Items[i].ToString()) as IFeatureLayer;IFeatureClass outputFeatureClass = featurelayer.FeatureClass;DataExportHelper.FeatureClassToFeatureClass(outputFeatureClass,sdeWorkspace); }this.Close();MessageBox.Show("导入完成!");}else if(layerType == "栅格数据"){}}catch(System.Exception ex){MessageBox.Show(ex.Message);}}private void button_cancle_Click (object sender,EventArgs e){this.Close();this.Dispose();}}
现在只是实现了矢量数据的批量导入,栅格数据的导入类似,就不再赘述了。希望和大家多多交流,谢谢关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27829.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 配置Linux环境 ArcGIS Server 64位客户端创建SDE

1. 环境情况 oracle数据库 11_2 g所在服务器环境&#xff1a; Windows Server 2016虚拟机&#xff0c;默认实例orcl &#xff0c;默认密码orclServer所在服务器环境&#xff1a;ArcGIS Server10.8.1&#xff0c;CentOS7.5虚拟机&#xff0c;64位Instant客户端本机ArcMap10.8.1…

如何快速搭建基于PostgreSQL的空间数据库(SDE)

如何快速搭建基于PostgreSQL的空间数据库&#xff08;SDE&#xff09; 1 安装准备 1.1 ArcGIS平台 ArcGIS Desktop 10.5以及ArcGIS Enterprise 10.5。 1.2 数据库 ArcGIS 支持以下PostgreSQL 和 PostGIS 版本。列出的特定版本为支持的最低次要版本&#xff0c;受支持…

SDE数据库解锁

SDE数据库解锁 arcgis sde数据库解锁 方法一&#xff1a;登录修改数据用户&#xff0c;选择数据上层数据集或数据库 选择一行数据右键解锁&#xff0c;shift选择多行数据解锁 方法二&#xff1a;plsql 数据库语句解锁数据库 select * from sde.state_locks; select * from s…

sde用sql实现erase

概述&#xff1a; 本文讲述基于Arc SDE forOracle实现erase空间分析计算。 实现流程&#xff1a; 1、叠加计算 判断叠加&#xff0c;非叠加部分即为一部分所要结果&#xff0c;叠加部分进入第二步&#xff1b; 2、合并计算 根据objectid进行union计算&#xff1b; 3、差异…

SDE常用函数

SDE常用函数 arcgis sde库常用函数&#xff1a;&#xff08;示例使用Oracle数据库&#xff09; 1、ST_AsText 返回表示几何的文本字符串(wkt) sde.st_astext(shape) SELECT SDE.ST_ASTEXT(SHAPE) FROM TEXT结果&#xff1a; 2、ST_Geometry ST_Geometry 通过文本(wkt,坐…

Sentaurus SDE

Sentaurus SDE visual

sde方面的一些疑问(笔记)

sde&#xff1a; &#xff08;1&#xff09;ArcSDE 服务自 ArcGIS 10.3 起不再可用。但是&#xff0c;ArcGIS 10.3.1 和更高版本的客户端仍可以使用 ArcSDE 服务连接到 10.1 或 10.2.x 版本的地理数据库。 http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/admini…

Sentaurus TCAD学习之SDE

Sentaurus TCAD学习之Sde 分析IGBT例子中SDE代码 分析IGBT例子中SDE代码 ; Using DF-ISE coordinate system for structure generation //使用DF-ISE坐标系生成结构 (sde:set-process-up-direction "z");---------------------------------------------------------…

SDE:Stochastic Differential Equation 简述

一、ODE vs. SDE 常微分方程(ODE)的基本形式为&#xff1a; 一般来说其解是一条确定的曲线&#xff0c;而随机微分方程(SDE)&#xff0c;其结果是一个随机的过程&#xff0c;最终得到是的多种样本轨道。 那么在ODE方程里加入随机性主要有两种方式&#xff1a; 1、随机化初值…

ArcEngine连接sde并读取数据

第一步&#xff1a;创建空数据库 打开SQL Server 2012&#xff0c;新建一个空的数据库&#xff0c;我这里命名为TestGDB 第二步&#xff1a;建立SDE数据库 打开ArcMap&#xff0c;在ArcToolbox中选择数据管理工具下的地理数据库管理&#xff0c;点击创建企业级地理数据库。…

ArcCatalog连接PostgreSQL创建SDE库

本文默认环境已经安装好ArcGIS及PostgreSQL。 1.将 ArcGIS桌面程序安装目录下的文件&#xff08;[Installdir]\DatabaseSupport\PostgreSQL\9.2\Windows64&#xff09;拷贝到postgresql安装目录下的lib文件夹 2.将32位的postgresql library 安装目录 bin文件夹的5个dll文件&…

配置 SDE 的 st_geometry

终于搞好了软件&#xff0c;搞好了 SDE 的 Post&#xff0c;现在还有一个问题&#xff0c;即使用 SQL 直接操作 sde for oralce&#xff0c;只有这种操作&#xff0c;才最高效&#xff0c;也是该项目的最终目标。 马上找了一个测试 sql 语句做试验&#xff1a; select sde.ST…

SDE —— 扩展SDE表空间容量

扩展SDE表空间容量 起因解决总体流程 查看表空间基本属性查看表空间物理存储文件位置及状态信息查看表空间中各“段类型&#xff08;Segment&#xff09;”创建新的物理存储文件以扩展表空间重设原有数据文件的大小使指定表空间物理文件容量自动增加使表空间自动扩容&#xff0…

CSND近期推出的猿如意到底怎么样?

CSND近期推出的猿如意到底怎么样&#xff1f; 投稿测评正文 猿如意传送门 猿如意下载地址&#xff1a;猿如意-程序员的如意兵器,工具代码,一搜就有 猿如意使用了几次了&#xff0c;今天来想分享一下我对于猿如意的使用感受吧&#xff01;&#xff01; 先说结论&#xff1a…

匆匆遭遇猿如意

刚刚收到一条消息&#xff0c;说有一个csdn的猿如意可以测试了&#xff0c;我就下载了一个&#xff0c;根据提示下载了&#xff0c;然后开始体验。 一、ChatGPT 谁让这个东西最近这么热呢&#xff0c;所以&#xff0c;我第一个就体验这个东东了&#xff0c;结果&#xff0c;结…

高效好用的开发工具箱——猿如意

目录 前言&#xff1a; 1.我常用的功能介绍 2.主要功能chatGPT测评 3.我的使用体验和改进建议 前言&#xff1a; 猿如意是一款帮助开发的效率工具&#xff0c;集成了许多有用的工具和文档教程。帮助开发者提升开发效率&#xff0c;帮你从“问题”找到“答案”。尤其是12月…

mongodb偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream

项目开发中&#xff0c;链接mongodb的项目&#xff0c;偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream 报错的详细信息&#xff1a; 2022-07-11 08:34:00.001 INFO 1 --- [ scheduling-1] o.s.d.mongodb.core.convert.QueryMapper :…

【强烈推荐】程序员平时使用最多的绘图软件之一!!!

draw.io 之前画图一般都是使用processOn&#xff08;https://www.processon.com/&#xff09;,缺点就是只能通过网站画图&#xff0c;并且存在云端&#xff0c;不花钱想白嫖&#xff0c;只能画几张。 像我这种家庭条件&#xff0c;怎么用得起&#xff0c;而且我喜欢把东西存…

聊聊最适合程序员的画图工具

画图工具 没问题&#xff0c;直接坦白讲&#xff0c;我用了 2 年的画图工具是&#xff1a;draw.io。 我的图解文章里的图片全是在 draw.io 这个工具画的&#xff0c;写了那么久的图解文章&#xff0c;再加上我工作中也有画图的习惯&#xff0c;累计也有在上面画了接近 1000 张…

一款国内外流行的绘图软件,Visio国产类似工具!

如果大家因为价格较高、电脑系统限制、运行环境限制、操作不习惯等原因&#xff0c;想要寻找Visio的替代品&#xff0c;那我真心推荐你试下国产软件亿图图示。 亿图图示可替代Visio的优势和理由有7个&#xff1a; 1、跨平台设计&#xff0c;云端储存 关键词&#xff1a;兼容…