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文件!","数据格式错误");
    }
    }
  • 相关阅读:
    JavaScript 中的undefined and null 学习
    html5 file upload and form data by ajax
    openresty + lua-resty-weedfs + weedfs + graphicsmagick动态生成缩略图(类似淘宝方案)
    ubuntu10.04 安装oracle server 版 笔记
    windows xp + mysql5.5 + phpmyadmin insert 中文繁體
    (原创)ubuntu 10.04+ruby1.9.2+rails3 安装记录
    ruby簡單的代碼行統計工具
    Ruby中如何复制对象 (deep clone)(转载)
    vi 常用命令使用說明
    一个小公司老板的日常管理日记,希望能让创业的朋友学到东西(转载)
  • 原文地址:https://www.cnblogs.com/yuxiuting/p/2254594.html
Copyright © 2011-2022 走看看