当直接加载矢量数据到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. javascript中的“向量”

    什么是向量 向量通常指一个有长度有方向的量.向量使所有的移动和空间行为更容易理解和在代码中实现.向量可以相加,缩放,旋转,指向某物体. 在javascript中,一个方向和长度(即向量)在二维空间中可 ...

  2. css两种动态显示星星等级的比较(一星、两星、三星、四星、五星)

    原文:css两种动态显示星星等级的比较(一星.两星.三星.四星.五星) 以下是显示后的图片,相信在很多网站上都能看到这种效果,目前我知道两种实现方式 1.background-position加上一张 ...

  3. 1号店Interview小结

    三大范式: 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范 ...

  4. COCOS2D-X FRAME动画创作随笔

    CCAnimate继承CCActionInterval,和CCAnimate是一家action,有着action所有的属性和方法. CCAnimate一些重要的方法: static CCAnimate ...

  5. 电脑知识--Windows一片

    .com档 Dos可执行命令文件,一般小于64kb, .com文件包括程序的一个绝对映像.就是说,为了执行程序准确的处理器指令和内存中的数据.Ms-Dos通过直接把该映像从文件复制到内存. 而 载入. ...

  6. Swift伟大的编程语言数据采集

    Swift 2048 https://github.com/austinzheng/swift-2048 苹果官方Swift文档<The Swift Programming Language&g ...

  7. 腾讯2014在广州站实习生offer经验(TEG-开发背景)

    研究在过去的一年是linux 什么系统编程和网络编程.比较熟悉的语言c/c++,python只写一些测试client.是后台开发类,比方前面笔面的网易CC(面完hr后挂).大概3月15号就在腾讯 jo ...

  8. MEF初体验之三:Exports声明

    组合部件通过[ExportAttribute]声明exports.在MEF中,有这么几种成员可声明exports的方式:组合部件(类).字段.属性和方法.我们来看下ExportAttribute类的声 ...

  9. 好大滴坑, Spring MVC覆盖了Trsaction

    好大滴坑. Spring MVC覆盖了Trsaction 解决方式: <!-- package-scan 4 Spring MVC --> <context:component-sc ...

  10. C++学习笔记13-类继承

    1.  类模板的 static 成员[不同于C#中的static] 类模板能够像随意其它类一样声明static 成员.下面代码: template <class T> class Foo ...