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

  • 相关阅读:
    背景图轮播 响应式 插件 vegas的使用和下载
    (补充)scrapy框架爬取智联招聘信息--上海python工作
    REMOVE A WINDOWS SERVICE
    SQL Server 2008对日期时间类型的改进
    IIS ARR(Application Request Route)与反向代理(Reverse Proxy)
    Jenkins .NET项目持续集成配置
    未找到框架“.NETFramework,Version=v4.5”的引用程序集
    IIS ARR设置HTTP跳转到HTTPS
    怎么学好XXX
    MongoDB
  • 原文地址:https://www.cnblogs.com/edcoder/p/11713307.html
Copyright © 2011-2022 走看看