C#+AE 用MapControl加载栅格格式文件

简介:

需要引入DataSourceRaster命名空间。

具体步骤如下:

①:利用工作控件工厂抽象类定义接口变量,利用工作空间工厂的子类RatserWorkspaceFactory对应的组件类RasterWorkspaceFactoryClass实例化该接口变量。

②:定义并实例化工作空间变量,定义并实例化栅格工作空间变量;

③:定义栅格数据集,并利用所选栅格数据文件进行实例化,判断该文件是否具有金字塔,若没有,则创建金字塔,以提高大数据量图像的显示效率;

④:定义栅格数据,栅格数据层和数据层,并向MapControl控件中添加数据层数据。

具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
System.Windows.Forms.OpenFileDialog ofd =  new  OpenFileDialog();
ofd.Filter =  "*.bmp|*.bmp|*.jpg|*.jpg|*.tif|*.tif" ;
ofd.ShowDialog();
 
string  filePath = ofd.FileName;
 
//此两个路径和文件名作为参数:
string  pathName = System.IO.Path.GetDirectoryName(filePath);
string  fileName = System.IO.Path.GetFileName(filePath);
 
//定义工作空间工厂并实例化:
IWorkspaceFactory pWSF;
pWSF =  new  RasterWorkspaceFactoryClass();
 
IWorkspace pWS;
pWS = pWSF.OpenFromFile(pathName,0);
 
IRasterWorkspace pRWS;
pRWS = pWS  as  IRasterWorkspace;
 
IRasterDataset pRasterDataset;
pRasterDataset = pRWS.OpenRasterDataset(fileName);
 
//影像金字塔的判断与创建
IRasterPyramid pRasPyrmid;
pRasPyrmid = pRasterDataset  as  IRasterPyramid;
 
if (pRasPyrmid!= null )
{
     if (!(pRasPyrmid.Present))
     {
         pRasPyrmid.Create();
     }
}
 
IRaster pRaster;
pRaster = pRasterDataset.CreateDefaultRaster();
 
IRasterLayer pRasterLayer;
pRasterLayer =  new  RasterLayerClass();
pRasterLayer.CreateFromRaster(pRaster);
 
ILayer pLayer = pRasterLayer  as  ILayer;
axMapControl1.AddLayer(pLayer,0);

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5902873.html,如需转载请自行联系原作者


相关文章
|
19天前
|
C#
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
|
3月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
62 1
|
3月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
169 0
|
3月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
781 0
|
5月前
|
监控 安全 C#
使用C#如何监控选定文件夹中文件的变动情况?
使用C#如何监控选定文件夹中文件的变动情况?
132 19
|
5月前
|
编译器 C# Windows
C#基础:手动编译一个.cs源代码文件并生成.exe可执行文件
通过上述步骤,应该能够高效准确地编译C#源代码并生成相应的可执行文件。此外,这一过程强调了对命令行编译器的理解,这在调试和自动化编译流程中是非常重要的。
456 2
|
5月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
50 3
|
5月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
5月前
|
C#
C# 写日志文件
C# 写日志文件
56 0
|
7月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
156 1