ArcEngine载入中SDE问题栅格数据
当直接加载矢量数据到IFeatureWorkspace接口可,但是,在装载门格当要传送的数据IRasterWorkspaceEx接口。
效果如下面的,对可以被添加到双击Globe在。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2lzZXJfd2h1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
代码例如以下:
public partial class SDEDataViewer : DevComponents.DotNetBar.Office2007Form
{
#region 私有变量
private IWorkspace sdeWorkSpace; //sde工作控件
private IGlobeControl globecontrol; private string selectedVectorName;//待加入矢量
private string selectedRasterName;
#endregion #region 构造函数
public SDEDataViewer(IGlobeControl m_globecontrol , IWorkspace workspace)
{
this.sdeWorkSpace = workspace;
this.globecontrol = m_globecontrol;
InitializeComponent();
}
#endregion #region load private void SDEDataViewer_Load(object sender , EventArgs e)
{
IAoInitialize initAO = new AoInitializeClass();
initAO.Initialize((esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB));
loadData();
}
//获取全部数据
private void loadData()
{
listView_vector.GridLines = true;//表格是否显示网格线
listView_vector.FullRowSelect = true;//是否选中整行
listView_vector.View = View.Details;//设置显示方式
listView_vector.Scrollable = true;//是否自己主动显示滚动栏
listView_vector.MultiSelect = false;//能否够选择多行 listView_raster.GridLines = true;
listView_raster.FullRowSelect = true;
listView_raster.View = View.Details;
listView_raster.Scrollable = true;
listView_raster.MultiSelect = false; //加入表头(列)
listView_vector.Columns.Add("要素名称" , 150 , HorizontalAlignment.Center);
listView_vector.Columns.Add("要素类型" , 100 , HorizontalAlignment.Center);
listView_raster.Columns.Add("数据名称" , 150 , HorizontalAlignment.Center);
listView_raster.Columns.Add("数据类型" , 100 , HorizontalAlignment.Center); try
{
IEnumDataset enumDataset = sdeWorkSpace.get_Datasets(esriDatasetType.esriDTAny);
IDataset dataset = null;
while ((dataset = enumDataset.Next()) != null)
{
if (dataset.Type == esriDatasetType.esriDTFeatureClass)
{
ListViewItem item = new ListViewItem();
item.SubItems.Clear();
item.SubItems[0].Text = dataset.Name;
string strFeatureType = GetFeatureType(dataset.Name);
item.SubItems.Add(strFeatureType);
listView_vector.Items.Add(item);
}
else if (dataset.Type == esriDatasetType.esriDTRasterDataset)
{
ListViewItem item = new ListViewItem();
item.SubItems.Clear();
item.SubItems[0].Text = dataset.Name;
item.SubItems.Add("栅格数据集");
listView_raster.Items.Add(item); } } }
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
} //获取要素类型
private string GetFeatureType(string pDataSetName)
{
string featureType = "";
IFeatureWorkspace pFeatureWS = sdeWorkSpace as IFeatureWorkspace;
IFeatureClass featureClass = pFeatureWS.OpenFeatureClass(pDataSetName); switch (featureClass.ShapeType)
{ case esriGeometryType.esriGeometryPoint:
featureType = "点要素";
break;
case esriGeometryType.esriGeometryPolyline:
featureType = "线要素";
break;
case esriGeometryType.esriGeometryPolygon:
featureType = "面要素";
break;
default:
break;
}
// System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureWS);
System.Runtime.InteropServices.Marshal.ReleaseComObject(featureClass);
return featureType;
} #endregion #region 加入数据 //加入矢量
private void listView_vector_MouseDoubleClick(object sender , MouseEventArgs e)
{ IFeatureClass featureClass = (sdeWorkSpace as IFeatureWorkspace).OpenFeatureClass(selectedVectorName);
IFeatureLayer featureLayer = new FeatureLayerClass()
{
FeatureClass = featureClass ,
Name = featureClass.AliasName
};
VectorHelper_FeatureOpt VectorAdderHelper = new VectorHelper_FeatureOpt(globecontrol , featureLayer);
VectorAdderHelper.ShowDialog();
this.Close(); //System.Runtime.InteropServices.Marshal.ReleaseComObject(featureClass);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(featureLayer); } //加入栅格
private void listView_raster_MouseDoubleClick(object sender , MouseEventArgs e)
{ IRasterWorkspaceEx rasterWSEx = sdeWorkSpace as IRasterWorkspaceEx;
IRasterDataset rasterDataset = rasterWSEx.OpenRasterDataset(selectedRasterName);
IRasterLayer rasterLayer = new RasterLayerClass();
rasterLayer.CreateFromDataset(rasterDataset); RasterHelper_LayerType rasterAdderHelper = new RasterHelper_LayerType(globecontrol , rasterLayer);
rasterAdderHelper.ShowDialog();
this.Close(); //System.Runtime.InteropServices.Marshal.ReleaseComObject(rasterLayer); } //obtain selected vector
private void listView_vector_SelectedIndexChanged(object sender , EventArgs e)
{
ListViewItem item = new ListViewItem();
item = listView_vector.SelectedItems[0];
string featureClassName_temp = item.SubItems[0].ToString();
int lastIndex_left = featureClassName_temp.LastIndexOf("{");
int lastIndex_right = featureClassName_temp.LastIndexOf("}");
selectedVectorName = featureClassName_temp.Substring(lastIndex_left + 1 , lastIndex_right - lastIndex_left - 1); }
//obtain selected raster
private void listView_raster_SelectedIndexChanged(object sender , EventArgs e)
{
ListViewItem item = new ListViewItem();
item = listView_raster.SelectedItems[0];
string rasterName_temp = item.SubItems[0].ToString();
int lastIndex_left = rasterName_temp.LastIndexOf("{");
int lastIndex_right = rasterName_temp.LastIndexOf("}");
selectedRasterName = rasterName_temp.Substring(lastIndex_left + 1 , lastIndex_right - lastIndex_left - 1); }
#endregion }
欢迎留言交流。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
ArcEngine载入中SDE问题栅格数据的更多相关文章
- WPF异步载入图片,附带载入中动画
原文:WPF异步载入图片,附带载入中动画 WPF异步载入图片,附带载入中动画 最近,在做一个WPF项目.项目中有一个需求,就是以列表的方式显示出项目图片.这些图片有的存在于互联网上,有的存在于本地磁盘 ...
- 正在载入中......loading页面的几种方法
网页加载过程中提示“载入中…”,特别是使用动画效果,可以一个“等待”的温馨提示,用户体验很不错.下面介绍几种方法. 第一种: 原理就是,在网页载入时在页面最中间打入一个层上面显示,"网页正在 ...
- Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果
Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果 不同大小.位置,效果,进度条等 演示 XML/HTML Code <article class="exa ...
- ArcSDE空间数据库中SDE用户使用探讨(转)
ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据 库中SDE用户的使用方法. ArcSDE如何工作 ArcSDE属于中间件技术,其本身并不能够存储空 ...
- ArcSDE空间数据库中SDE用户使用探讨 (转载)
ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据库中SDE用户的使用方法.ArcSDE如何工作ArcSDE属于中间件技术,其本身并不能够存储空间数据 ...
- ArcEngine开发中StartEditing和StartEditOperation的区别
背景: 最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始.保存.回滚编辑的入口内. ...
- arcEngine开发之加载栅格数据
加载数据思路 在Engine中加载各种各样的数据都是通过这样的格式 IWorkspaceFactory pWorkspace = new IWorkspaceFactory(); IWorkspace ...
- ArcEngine开发中“错误类型"****"未定义构造函数”
from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地 ...
- Three.js 3D打印数据模型文件(.STL)载入中
3DPrint是现在和未来10年度科技产品的主流之中.广泛的. 对于电子商务类3D打印网站.一个主要功能就是商品3D呈现的方式,那是,3D数据可视化技术. HTML5(WebGL)它可以用于构建3D查 ...
随机推荐
- Android-管理Activity生命周期 -重新创建Activity
按照正常的app行为,很少情况下activity会销毁,只有当用户点击了返回按钮或者activity通过调用finish()发出销毁信号.系统也有可能销毁activity如果它是停止状态并且很久没有使 ...
- uploadify控制 上传图片到百度云存储
最近使用uploadify 控制图片上传到百度网盘....总的想法是 招待会uploadify获取文件传入后台,调用百度云存储api上传到百度网盘,返回url 联系.送存储在数据库中的链接.因此,我们 ...
- 【原创】构建高性能ASP.NET站点之一 剖析页面的处理过程(前端)
原文:[原创]构建高性能ASP.NET站点之一 剖析页面的处理过程(前端) 构建高性能ASP.NET站点之一 剖析页面的处理过程(前端) 前言:在对ASP.NET网站进行优化的时候,往往不是只是懂得A ...
- 顺序表----java实现
最简单的数据结构--顺序表,此处以数组为例. 顺序表的优点:支持随机读取,内存空间利用率高. 顺序表的缺点:1.需要预先给出最大数据元素个数,这往往很难实现. 2.插入和删除时需要移动大量数据. Se ...
- Objective-C开发编码规范
Objective-C 编码规范,内容来自苹果.谷歌的文档翻译,自己的编码经验和对其它资料的总结. 概要 Objective-C 是一门面向对象的动态编程语言,主要用于编写 iOS 和 Mac 应用程 ...
- 【SSH进阶之路】一步步重构容器实现Spring框架——彻底封装,实现简单灵活的Spring框架(十一)
文件夹 [SSH进阶之路]一步步重构容器实现Spring框架--从一个简单的容器開始(八) [SSH进阶之路]一步步重构容器实现Spring框架--解决容器对组件的"侵入 ...
- Socket连接超时(转)
Socket.connect连接超时有二种情况: 1.由于网络的问题,TCP/IP三次握手时间>timeout的设置时间.这在国外访问weibo时,并且网络环境极差的情况下有可能发生.解决的办法 ...
- Android供TextView添加多个点击文字
我们使用社会性软件的过程中会或多或少像别人的帖子点,图. : 能够看到用户页面显示出来的仅仅是点了赞的用户的名称,点击这些名称能够进入到该用户的主页.我们就来实现相似的效果.直接上代码吧. @Over ...
- Teams(uva11609+组合)
I - Teams Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit cid=7795 ...
- COC+RTS+MOR游戏开发 一(游戏特色分析,和实践)
本场比赛的临时名称 游戏特色(-):COC风格 ,塔防养成类游戏. 一款史诗般的战斗策略游戏.玩家须要建立村庄,成千上万的网友训练玩家的军队和战斗. 游戏中玩家须要不断的提高军队的作 ...