上一篇中只能添加代码中指定的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, ); //数据目录
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二次开发,如果有不对的地方,请多多包涵!

最简单的ArcGIS Engine应用程序(中)的更多相关文章

  1. 最简单的ArcGIS Engine应用程序(下)

    在中篇我们讲到使用OpenFileDialog控件可以添加shp文件.(最简单的ArcGIS Engine应用程序(中)) 添加lyr文件的操作也是大同小异的. using System; using ...

  2. 最简单的ArcGIS Engine应用程序(终)

    在上文的基础上,下面将使用简单的代码实现要素类属性的查看.(最简单的ArcGIS Engine应用程序(下)) 新增一个窗体,并从工具箱拖动DataGridView控件到该窗体中.设置该对象的Dock ...

  3. 最简单的ArcGIS Engine应用程序(上)

    名词: IWorkspaceFactory 工作空间工厂 ShapeFileWorksapceFactory 矢量文件工作空间工厂 IWorkspce 工作空间 IFeatrueWorkspace 要 ...

  4. C#+ArcGIS Engine 获取地图中选中的要素

    转自 C#+ArcGIS Engine 获取地图中选中的要素 C#+ArcGIS Engine 获取地图中选中的要素 提供一种简单遍历获取地图中选中要素的方法,代码如下: List<IFeatu ...

  5. ArcGIS Engine读取GDB中的Shape

    string gdbPath = @"D:\Documents\ArcGIS\Default.gdb"; FileGDBWorkspaceFactoryClass pFileGDB ...

  6. ArcGIS Engine能够做什么?

    转自原文ArcGIS Engine能够做什么? ArcGIS Engine是一组跨平台的嵌入式ArcObjects,它是ArcGIS软件产品的底层组件,用来构建定制的GIS和桌面制图应用程序,或是向原 ...

  7. 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划

    前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...

  8. ArcGIS Engine控件运行许可(转)

    ArcGIS Engine控件运行许可   Runtime绑定: 在ArcGIS Engine10.0中,许可方式发生了一定的变化,ArcGis10有一个新的要求---runtime绑定.就是在任何A ...

  9. ArcGIS Engine开发之旅01---产品组成、逻辑体系结构

    原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成:  面向开发人员的软件开发包(ArcGIS Engine Developer k ...

随机推荐

  1. Django之使用内置函数和celery发邮件

    邮箱配置 开启stmp服务 以163邮箱为例,点击设置里面的stmp 开启客户端授权密码 如上所示,因为我已经开启了,所以出现的是以上页面. 这样,邮箱的准备就已经完成了. 使用Django内置函数发 ...

  2. python安装virtualenv虚拟环境步骤

    一.安装virtualenv 点击左下角最边上菜单栏输入cmd,打开命令行   2.根据版本的不同输入命令pip install virtualenv(或者pip3 install virtualen ...

  3. Linux防火墙管理

    1.临时关闭防火墙 systemctl stop firewalld 2.查看防火墙运行状态 firewall-cmd --state 3.开启防火墙 systemctl start firewall ...

  4. 02.Django基础二之URL路由系统

    一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...

  5. Java13新特性

    Java 13 的官方开发目标包含改进垃圾收集.应用程序的类数据共享和文本块 Java 开发工具包(JDK)13,标准 Java 的下一个版本,现在可作为候选版本使用,所有新功能都已锁定.JDK 13 ...

  6. SpringBoot区块链之以太坊区块高度扫描(简洁版)

    继续昨天的demo往下写写:[SpringBoot区块链之以太坊开发(整合Web3j)](https://juejin.im/post/5d88e6c1518825094f69e887),将复杂的逻辑 ...

  7. [Leetcode] 第290题 单词模式

    一.题目描述 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式. 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词 ...

  8. AppScan工具介绍与安装

    本文仅供个人参考学习,如做商业用途,请购买正版,谢谢! 介绍 AppScan是IBM公司出的一款Web应用安全测试工具,采用黑盒测试的方式,可以扫描常见的web应用安全漏洞.其工作原理,首先是根据起始 ...

  9. 验证fstab文件修改是否正确

    /etc/fstab文件是系统启动时要挂载点文件系统. 如果fstab文件配置错误,会导致系统无法正常启动. 最近我就是因为大意,在配置fstab重启服务器后,出现系统无法识别挂载点/opt/back ...

  10. JavaScript总结(一)

    一.JavaScript 简介 1.1 .什么是 JavaScript? JavaScript 的简称:JS. JavaScript 是一个脚本.(不需要经过编译器编译的语言就叫做脚本) JavaSc ...