zoukankan      html  css  js  c++  java
  • 最简单的ArcGIS Engine应用程序(中)

    上一篇中只能添加代码中指定的shp文件(最简单的ArcGIS Engine应用程序(上)

    为了让用户可以浏览磁盘加载指定的shp文件,需做一下调整。

    从工具箱往窗体上添加一个OpenFileDialog控件。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    using ESRI.ArcGIS.DataSourcesFile;
    using ESRI.ArcGIS.Geodatabase;
    using ESRI.ArcGIS.Carto;
    
    namespace SimpleArcEngineDemo
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void menuAddShp_Click(object sender, EventArgs e)
            {
                //步骤1: 创建工作空间工厂。
                IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();
    
                //文件过滤器, 选择后缀名为.shp
                openFileDialog1.Filter = "ShapeFile文件(*.shp)|*.shp";
                
                //设定文件对话框的初始路径
                openFileDialog1.InitialDirectory = @"D:data";
                
                //示例数据文件夹
                openFileDialog1.Multiselect = false; //不允许多选
                DialogResult dialogResult = openFileDialog1.ShowDialog();//打开对话框
                if (dialogResult != DialogResult.OK)
                {
                    return; //用户没有选择时返回
                }
                //得到文件名对应的路径、文件夹名等
                string pPath = openFileDialog1.FileName;    //得到完整的路径(路径+文件名)
                string pFolder = Path.GetDirectoryName(pPath);  //得到文件的路径(不包括文件名)
                string pFileName = Path.GetFileName(pPath); //得到文件的文件名
    
                //步骤2: 打开ShapeFile文件名对应的工作空间。
                IWorkspace pWorkspace1 = pWorkspaceFactory.OpenFromFile(pFolder, 0);  //数据目录
                IFeatureWorkspace pFeatureWorkspce = pWorkspace1 as IFeatureWorkspace; //将工作空间强转成要素工作空间
    
                //步骤3: 打开要素类。
                IFeatureClass pFC = pFeatureWorkspce.OpenFeatureClass(pFileName);
    
                //步骤4: 创建要素类图层。
                IFeatureLayer pFLayer = new FeatureLayerClass();
                pFLayer.FeatureClass = pFC;
                pFLayer.Name = pFC.AliasName;
    
                //步骤5: 关联图层和要素类。
                ILayer pLayer = pFLayer as ILayer;
                IMap pMap = axMapControl1.Map;
    
                //步骤6: 添加到地图控件中。
                pMap.AddLayer(pLayer);
                axMapControl1.ActiveView.Refresh();
    
            }
        }
    }

     简述:

    单机“添加shp”,会弹出一个打开文件的对话框,浏览目录后选中任意一个shp文件,单机确定,即可将指定的shp文件加载到地图控件当中。

    谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!

  • 相关阅读:
    Ubuntu +PHP-fpm + Nginx 访问php界面空白的界面的分析
    Erlang 语言简介
    坐标体系WGS84/GCJ02/BD09
    Linux 系统的启动顺序
    母板页 难点---数据交换
    用户控件(二)--常见4 种路径问题解决:
    XML语言:可扩展的标记语言;
    用户控件(一) ----交换信息
    单选款复选款的选择并操作方法
    生成指定格式的流水号
  • 原文地址:https://www.cnblogs.com/edcoder/p/11713307.html
Copyright © 2011-2022 走看看