当直接加载矢量数据到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问题栅格数据的更多相关文章

  1. WPF异步载入图片,附带载入中动画

    原文:WPF异步载入图片,附带载入中动画 WPF异步载入图片,附带载入中动画 最近,在做一个WPF项目.项目中有一个需求,就是以列表的方式显示出项目图片.这些图片有的存在于互联网上,有的存在于本地磁盘 ...

  2. 正在载入中......loading页面的几种方法

    网页加载过程中提示“载入中…”,特别是使用动画效果,可以一个“等待”的温馨提示,用户体验很不错.下面介绍几种方法. 第一种: 原理就是,在网页载入时在页面最中间打入一个层上面显示,"网页正在 ...

  3. Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果

    Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果 不同大小.位置,效果,进度条等 演示 XML/HTML Code <article class="exa ...

  4. ArcSDE空间数据库中SDE用户使用探讨(转)

    ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据 库中SDE用户的使用方法. ArcSDE如何工作 ArcSDE属于中间件技术,其本身并不能够存储空 ...

  5. ArcSDE空间数据库中SDE用户使用探讨 (转载)

    ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据库中SDE用户的使用方法.ArcSDE如何工作ArcSDE属于中间件技术,其本身并不能够存储空间数据 ...

  6. ArcEngine开发中StartEditing和StartEditOperation的区别

    背景: 最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始.保存.回滚编辑的入口内. ...

  7. arcEngine开发之加载栅格数据

    加载数据思路 在Engine中加载各种各样的数据都是通过这样的格式 IWorkspaceFactory pWorkspace = new IWorkspaceFactory(); IWorkspace ...

  8. ArcEngine开发中“错误类型"****"未定义构造函数”

    from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地 ...

  9. Three.js 3D打印数据模型文件(.STL)载入中

    3DPrint是现在和未来10年度科技产品的主流之中.广泛的. 对于电子商务类3D打印网站.一个主要功能就是商品3D呈现的方式,那是,3D数据可视化技术. HTML5(WebGL)它可以用于构建3D查 ...

随机推荐

  1. ubuntu快捷键设置,查看系统

    设置system setting于.点击键盘keyboard,有捷径keyboard shortcut.但也设置快捷键本身. 版权声明:本文博主原创文章,博客,未经同意不得转载.

  2. .NET 4 并行(多核)编程系列之三 从Task的取消

    原文:.NET 4 并行(多核)编程系列之三 从Task的取消 .NET 4 并行(多核)编程系列之三 从Task的取消 前言:因为Task是.NET 4并行编程最为核心的一个类,也我们在是在并行编程 ...

  3. GitLab 之 Linux十分钟快装(转)

    先把 Shell 命令贴出来,楼主以 CentOS release 6.5 (Final) 64位 为例: //配置系统防火墙,把HTTP和SSH端口开放. sudo yum install curl ...

  4. C利用宏语言(#,##,do…while(0)盛大)

    C利用宏语言(#,##.do-while(0)盛大) 1.使用宏预先定义__FILE__,__FUNCTION__.__LINE__. #include <stdio.h> void fu ...

  5. Android ListView分页载入(服务端+android端)Demo

    Android ListView分页载入功能 在实际开发中经经常使用到,是每一个开发人员必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了測试. 服务端使用MyEcli ...

  6. ext Window点击右上角的关闭(Xbutton)加入监控事件

    使用场景:关闭window的时候添加监听事件. 正确的使用方式: addwin = new Ext.Window({ title : '新增', closable : true, width : 50 ...

  7. SQLServer 扫盲

    原文:SQLServer 扫盲 谨以本文记录本人成长历程,并分享给各位SQL Server数据库管理系统使用者.本系列包含个人认为一个DBA应该具有的各项素质,系列文章将以下面列表展示,将持续更新,敬 ...

  8. BZOJ 1096 ZJOI2007 仓库建设 边坡优化

    标题效果:特定n植物,其中一些建筑仓库,有一点使,假设没有仓库仓库向右仓库.最低消费要求 非常easy边坡优化--在此之前刷坡优化的情况下,即使这道题怎么错过 订购f[i]作为i点建设化妆i花费所有安 ...

  9. UI设计规范

    iphone\ipad.android UI设计规范对比 http://blog.163.com/leenell@yeah/blog/static/95840991201302210451710/ A ...

  10. 【JAVA】【NIO】5、Java NIO Scatter / Gather

    标题手段Java NIO该分散体浓缩 Java NIO内置支持分散与收集.的概念主要用于信道分散聚集的读写. 读出的分散体的一个通道被读多个数据buffer在.因此.数据分散到多个buffer中. 对 ...