ArcEngine实现打开shapfile、Raster、TIN文件

1、打开shapfile文件 

 1  //打开工作空间需要对应的工作空间工厂
 2            IWorkspaceFactory PWorkSpaceFactory = new ShapefileWorkspaceFactory();
3
4 IFeatureWorkspace PFeatureWorkSpace;
5 IFeatureLayer PFeatureLayer = new FeatureLayerClass();
6 OpenFileDialog Open = new OpenFileDialog();
7
8 Open.Title = "Select File";
9 Open.Filter = "shapefiel(.shp)|*.shp";
10
11 Open.ShowDialog();
12
13 string strFullPath = Open.FileName;
14 if (strFullPath == "") return;
15
16 //提取文件名和打开路径
17 int index = strFullPath.LastIndexOf("\\");
18 string filepath = strFullPath.Substring(0, index);
19 string filename = strFullPath.Substring(index + 1);
20
21 //设置shapefile工作空间,即打开路径
22 PFeatureWorkSpace = (IFeatureWorkspace)PWorkSpaceFactory.OpenFromFile(filepath, 0);
23
24 //打开一个类要素
25 PFeatureLayer.FeatureClass = PFeatureWorkSpace.OpenFeatureClass(filename);
26 //PFeatureLayer.Name = PFeatureLayer.FeatureClass.AliasName;
27
28 //首先清空已有图层
29 axMapControl1.Map.ClearLayers();
30
31 //添加图层
32 axMapControl1.Map.AddLayer(PFeatureLayer);
33 axMapControl1.Refresh();

2、 打开Raster文件

1             IWorkspaceFactory PWorkSpaceFactory = new RasterWorkspaceFactory();
2 IRasterWorkspace PRasterWorkSpace;
3 IRasterDataset PRasterDataset = new RasterDatasetClass();
4 IRasterLayer PRasterlayer = new RasterLayerClass();
5 OpenFileDialog Open = new OpenFileDialog();
6
7 Open.Title = "Select File";
8 Open.Filter = "Layer File(*.lyr)|*.jpg;*.bmp;*.tiff";
9
10 Open.ShowDialog();
11 string strFullPath = Open.FileName;
12 if (strFullPath == "") return;
13
14 //提取栅格数据集名称和打开路径
15 int index = strFullPath.LastIndexOf("\\");
16 string filepath = strFullPath.Substring(0, index);
17 string filename = strFullPath.Substring(index + 1);
18
19 PRasterWorkSpace = (IRasterWorkspace)PWorkSpaceFactory.OpenFromFile(filepath,0);
20 PRasterDataset = (IRasterDataset)PRasterWorkSpace.OpenRasterDataset(filename);
21
22 //初始化一个新的Rasterlayer有三种方式CreateFromDataset,CreateFromFilePath,CreateFromRaster
23
24 //CreateFromDataset方式
25 PRasterlayer.CreateFromDataset(PRasterDataset);
26
27 //CreateFromFilePath方式
28 //PRasterlayer.CreateFromFilePath(strFullPath);
29
30 axMapControl1.Map.ClearLayers();
31 axMapControl1.AddLayer(PRasterlayer);
32 axMapControl1.Refresh();

3、打开TIN文件

private void LoadTINToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
FolderBrowserDialog dlg = new FolderBrowserDialog();
dlg.Description = "选择存放TIN文件的文件夹:";
string FolderName = "";
string FileName = "";
string path = "";

if (dlg.ShowDialog() == DialogResult.OK)
{
path = dlg.SelectedPath;
FolderName = System.IO.Path.GetDirectoryName(path);
//MessageBox.Show(FolderName);
FileName = System.IO.Path.GetFileName(path);
//MessageBox.Show(FileName);

IWorkspaceFactory pWSFac = new TinWorkspaceFactoryClass();
IWorkspace pWS = pWSFac.OpenFromFile(FolderName, 0);

ITinWorkspace pTinWS = pWS as ITinWorkspace;
ITin pTin = pTinWS.OpenTin(FileName);

pTinLayer = new TinLayerClass();
pTinLayer.Dataset = pTin;
pTinLayer.Name = "tin";
this.axSceneControl1.Scene.AddLayer(pTinLayer, true);
SetTinLayerZFactor(pTinLayer, 1);
}
}

catch (Exception ex)
{
MessageBox.Show("请确保文件夹中全是TIN文件!","数据格式错误");
}
}

 

 

转载于:https://www.cnblogs.com/yuxiuting/archive/2011/11/18/2254594.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值