• 最简单的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二次开发,如果有不对的地方,请多多包涵!

  • 相关阅读:
    字符编码 乱码问题
    Django ORM那些相关操作
    pymysql模块使用---Python连接MySQL数据库
    数据库MySQL 之 索引原理与慢查询优化
    数据库MySQL之 视图、触发器、存储过程、函数、事务、数据库锁、数据库备份、事件
    数据库 MySQL 之 数据操作
    数据库 MySQL 之 表操作、存储引擎
    [BZOJ 4212]神牛的养成计划(Trie+可持久化Trie)
    [LuoguP4094] [HEOI2016] [TJOI2016]字符串(二分答案+后缀数组+ST表+主席树)
    [BZOJ 2865]字符串识别(后缀数组+线段树)
  • 原文地址:https://www.cnblogs.com/edcoder/p/11713307.html
Copyright © 2020-2023  润新知