C#+ArcEngine加载影像Raster栅格数据,并与ArcGIS一样判断是否创建金字塔。
2018-03-21 10:07
721 查看
第一步, 通过对话框的方式,打开路径找文件
pOpenFileDialog.CheckFileExists = true;
pOpenFileDialog.Title = "打开Raster栅格文件";
pOpenFileDialog.Filter = "栅格文件(*.*)|*.bmp;*.tif;*.jpg;*.img|(*.bmp)|*.bmp|(*.tif)|*.tif(*.jpg)|*.jpg|(*.img)*.img";
pOpenFileDialog.ShowDialog();
string RasterFileName = pOpenFileDialog.FileName;
if (RasterFileName == "")
return;
string Path = System.IO.Path.GetDirectoryName(RasterFileName); //获取文件路径
string Name = System.IO.Path.GetFileName(RasterFileName); //获取栅格文件名
//第二步,建立工作空间工厂 (工作空间工厂、工作空间、栅格工作空间)三级,然后实例化栅格要素数据集
IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(Path, 0);
IRasterWorkspace pRasterWorkspace = pWorkspace as IRasterWorkspace;
IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(Name);//
第三步,是否创建金字塔的判断
DialogResult dr=MessageBox.Show("是否创建金字塔?", "提示",MessageBoxButtons.YesNo, MessageBoxIcon.Question); //注意:这里的参数列表可以更换别的,YesNo可以改成OKCancel确定取消等等。
if (dr==DialogResult.OK) //当点击“是”的时候,创建金字塔
{
//影像金字塔的判断与创建,使用IRasterPyramid3接口
IRasterPyramid3 pRasPyrmid;
pRasPyrmid = pRasterDataset as IRasterPyramid3; //接口转换
if (pRasPyrmid != null)
{
if (!(pRasPyrmid.Present))
{
pRasPyrmid.Create();//创建金字塔
}
}
}
如图:
//当点击否的时候,直接加载到地图。
IRaster pRaster;
pRaster = pRasterDataset.CreateDefaultRaster();//
IRasterLayer pRasterLayer;
pRasterLayer = new RasterLayer(); //此处要更改Carto类库的嵌入类型为false
pRasterLayer.CreateFromRaster(pRaster);//
ILayer pLayer = pRasterLayer as ILayer;
axMapControl1.AddLayer(pLayer, 0);
pOpenFileDialog.CheckFileExists = true;
pOpenFileDialog.Title = "打开Raster栅格文件";
pOpenFileDialog.Filter = "栅格文件(*.*)|*.bmp;*.tif;*.jpg;*.img|(*.bmp)|*.bmp|(*.tif)|*.tif(*.jpg)|*.jpg|(*.img)*.img";
pOpenFileDialog.ShowDialog();
string RasterFileName = pOpenFileDialog.FileName;
if (RasterFileName == "")
return;
string Path = System.IO.Path.GetDirectoryName(RasterFileName); //获取文件路径
string Name = System.IO.Path.GetFileName(RasterFileName); //获取栅格文件名
//第二步,建立工作空间工厂 (工作空间工厂、工作空间、栅格工作空间)三级,然后实例化栅格要素数据集
IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(Path, 0);
IRasterWorkspace pRasterWorkspace = pWorkspace as IRasterWorkspace;
IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(Name);//
第三步,是否创建金字塔的判断
DialogResult dr=MessageBox.Show("是否创建金字塔?", "提示",MessageBoxButtons.YesNo, MessageBoxIcon.Question); //注意:这里的参数列表可以更换别的,YesNo可以改成OKCancel确定取消等等。
if (dr==DialogResult.OK) //当点击“是”的时候,创建金字塔
{
//影像金字塔的判断与创建,使用IRasterPyramid3接口
IRasterPyramid3 pRasPyrmid;
pRasPyrmid = pRasterDataset as IRasterPyramid3; //接口转换
if (pRasPyrmid != null)
{
if (!(pRasPyrmid.Present))
{
pRasPyrmid.Create();//创建金字塔
}
}
}
如图:
//当点击否的时候,直接加载到地图。
IRaster pRaster;
pRaster = pRasterDataset.CreateDefaultRaster();//
IRasterLayer pRasterLayer;
pRasterLayer = new RasterLayer(); //此处要更改Carto类库的嵌入类型为false
pRasterLayer.CreateFromRaster(pRaster);//
ILayer pLayer = pRasterLayer as ILayer;
axMapControl1.AddLayer(pLayer, 0);
相关文章推荐
- C#+ArcEngine:加载打开Shp矢量数据和栅格数据(VS2010窗体+代码)
- C#+Arcengine实现GP工具中Data Management Tool》raster》raster processing中的clip功能(矢量数据对栅格数据的裁剪)
- 判断页面加载后是否所有的下拉框都有数据
- C#之判断编辑框数据是否为空...
- C#+ArcEngine加载shape、栅格、access、mxd文件
- C# 中TCP连接通过数据接收来判断连接是否断开
- 创建右键菜单;加载菜单资源; WM_CONTEXTMENU;PtInRect(判断点是否在矩形内);ScreenToClient;DefWindowProc
- C# 通过HttpWebRequest 创建连接获取文件大小 判断Http类型的文件是否存在
- arcgis中的栅格数据的金字塔详解
- C#之判断编辑框数据是否为空...
- c# 注册表操作,创建,删除,修改,判断节点是否存在
- 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据
- arcEngine开发之加载栅格数据
- [ASP.NET]对Oracle数据库创建表/判断数据表是否已存在
- C#向数组列表中添加数据,以及判断数组中是否包含某元素
- 判断页面是否加载完成加载,并在加载完成后取到页面上的某个标签的数据
- C#判断文件及文件夹是否存在并创建(C#判断文件夹存在)
- C#+ArcEngine 不同格式数据打开,对象创建,导入导出
- c# mysql INSERT 数据前判断表中是否存在
- C# 如何判断数据是否为 NaN