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查 ...
随机推荐
- PDO基本操作Mysql
来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/805 PHP中的PDO扩展为PHP訪问数据库定义了一个轻量级的.一致性的接口.它提供了一个数据 ...
- (hdu step 6.3.7)Cat vs. Dog(当施工方规则:建边当观众和其他观众最喜爱的东西冲突,求最大独立集)
称号: Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- RESTful架构详解(转)
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- LightOJ 1205 Palindromic Numbers
数位DP.... Palindromic Numbers Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %l ...
- Hadoop-2.2.0中国文献—— Web应用代理
Web应用代理是YARN的一部分. 默认地,它会作为 Resource Manager(RM)的一部分来执行, 可是也能够配置成独立执行的模式.使用代理的原因就是减少通过YARN的web攻击的可能性. ...
- MapReduce 规划 系列十 采用HashPartitioner调整Reducer计算负荷
example4它演示了如何指定Reducer号码,本节演示如何使用HashPartitioner将Mapper根据该输出key分组后Reducer为了应对. 合理的分组策略会尽一切Reducer不能 ...
- 为什么 Linux Mint 比 Ubuntu好?
Linux Mint由Linux Mint Team团队于2006年开始发行,是一份基于Debian和Ubuntu的Linux发行版.其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件.多媒体 ...
- C#中假设正确使用线程Task类和Thread类
C#中使用线程Task类和Thread类小结 刚接触C#3个月左右.原先一直使用C++开发.由于公司的须要,所地採用C#开发.主要是控制设备的实时性操作,此为背景. 对于C#中的Task和Thread ...
- 接收一个IT招聘促销信息,试着想参加,有兴趣的可以携手并进,共同。
时隆重举行! 招聘的企业: (个人认为,中智.也买酒还是非常有吸引力的) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHdia2Zj/font/5a6L ...
- Matlab.NET混合编程技巧之——找出Matlab内置函数
原文:[原创]Matlab.NET混合编程技巧之--找出Matlab内置函数 Matlab与.NET的混合编程,掌握了基本过程,加上一定的开发经验和算法基础,肯定不难.反之,有时候一个小错误,可能抓破 ...