zoukankan      html  css  js  c++  java
  • 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文件!","数据格式错误");
    }
    }
  • 相关阅读:
    Oracle索引
    Oracle Union Union All 对查询结果集操作
    Oracle表连接
    BIOS + MBR > UEFI + GPT
    Opensource Licenses
    Linux 系统下使用dd命令备份还原MBR主引导记录
    Linux 文件类型笔记
    Linux 分支那么多,这里可以帮你缩小选择范围
    Arch Linux 的休眠设置
    Arch Linux pacman 与其他发行版操作比较
  • 原文地址:https://www.cnblogs.com/yuxiuting/p/2254594.html
Copyright © 2011-2022 走看看