前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#+ArcEngine加载影像Raster栅格数据,并与ArcGIS一样判断是否创建金字塔。

C#+ArcEngine加载影像Raster栅格数据,并与ArcGIS一样判断是否创建金字塔。

作者头像
acoolgiser
发布2019-01-17 09:59:39
1.7K0
发布2019-01-17 09:59:39
举报
文章被收录于专栏:acoolgiser_zhuanlanacoolgiser_zhuanlan

    第一步,   通过对话框的方式,打开路径找文件

            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);

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年03月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档