介绍ArcGIS中各种数据的打开方法——shp(矢量文件)
2、加载shp文件到地图控件
ShapeFile是一种矢量数据模型的计算机数据组织文件,用于在计算机上表达矢量数据的计算机文件。
加载ShapeFile文件最主要是:axMapControll控件对象所携带的AddShapeFile方法和Addlayer方法。
介绍两种加载shp文件的方法
方法一:使用axMapControl1对象的AddShapeFile方法加载ShapeFile文件
//path——为shp文件的路径目录,fileName——不带后缀的文件名
axMapControl1.AddShapeFile(path, fileName);
方法二:使用axMapControl1对象的AddLayer方法加载ShapeFile文件
//调用AddLayer方法添加shp图层
this.axMapControl1.AddLayer(pFLayer as ILayer);
方法二添加shp文件需要用到Map、Dataset、FeatureLayer和FeatureClass等对象。这些对象一般用到的主要接口有IMap、IActiveView、IDataset、IFeatureLayer和IFeatureClass等。
小提示:
IWorkspaceFactory 需要引用 using ESRI.ArcGIS.Geodatabase;
ShapefileWorkspaceFactory 需要引用 using ESRI.ArcGIS.DataSourcesFile;
核心代码:
#region 打开Shp文件
private void 打开Shp文件toolStripLabel1_Click(object sender, EventArgs e)
{
//方法一:
///addShapeFile1();
//方法二:
addShapeFile2();
}
/// <summary>
/// 方法二:使用axMapControl1对象的AddLayer方法加载ShapeFile文件
/// </summary>
private void addShapeFile2()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开shp文件";
ofd.Filter = "shp layer(*.shp)|*.shp";
if(ofd.ShowDialog()==DialogResult.OK)
{
string file = ofd.FileName;
int index = ;
//获取最后一个“\\”时的索引位置
index = file.LastIndexOf("\\");
//获得shp文件的路径
string filePath = file.Substring(, index);
//获得shp文件名
string fileName = file.Substring(index + , file.Length - (index + ));
//由工作空间工厂创建shp工作空间工厂类
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
//打开shp文件的路径目录, 并强转赋予要素工作空间
IFeatureWorkspace pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(filePath,) as IFeatureWorkspace;
//创建要素图层
IFeatureLayer pFLayer = new FeatureLayerClass();
//打开文件名
pFLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(fileName);
//定义pFLayer的别名
pFLayer.Name = pFLayer.FeatureClass.AliasName;
//调用AddLayer方法添加shp图层
this.axMapControl1.AddLayer(pFLayer as ILayer);
//axMapControl控件刷新
this.axMapControl1.Refresh();
}
} /// <summary>
/// 方法一:使用axMapControl1对象的AddShapeFile方法加载ShapeFile文件
/// </summary>
private void addShapeFile1()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开图层文件";
ofd.Filter = "map documents(*.shp)|*.shp";
if(ofd.ShowDialog()==DialogResult.OK)
{
//FileInfo类提供创建、复制、删除、移动和打开文件的实例方法
FileInfo fileInfo = new FileInfo(ofd.FileName);
//获取父目录并强制转换成字符型
String path = fileInfo.Directory.ToString();
//获取文件名
String fileName = fileInfo.Name.Substring(, fileInfo.Name.IndexOf("."));
try
{
//path——为shp文件的路径目录,fileName——不带后缀的文件名
axMapControl1.AddShapeFile(path, fileName);
}
catch(Exception e)
{
MessageBox.Show("添加图层失败!!!"+e.ToString());
}
}
}
#endregion
谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!
介绍ArcGIS中各种数据的打开方法——shp(矢量文件)的更多相关文章
- 介绍ArcGIS中各种数据的打开方法——mxd(地图文档)
1.加载地图文档 在ArcGIS中,以mxd作为扩展名的文件叫地图文档. 地图文档中只是包含图层的引用,即存储当前地图的图层路径.符号.状态.修饰等信息,并不存储真实的数据层. ArcGIS Map中 ...
- 介绍ArcGIS中各种数据的打开方法——mdb(个人数据库)
3.打开存储在Access GeoDatabase的要素类 使用工作空间打开一个Access库中的一个要素类. private void OpenWorkspaceFromFileAccess(str ...
- 介绍ArcGIS中各种数据的打开方法——tin(栅格文件)
4.加载栅格文件 栅格数据是GIS中重要的数据源之一,如卫星图像.扫描的地图.照片等. 栅格数据常见的格式有Bmp.Tiff.Jpg.Grid等. 添加栅格数据主要使用Rasterlayer 组件类, ...
- PatentTips - 在物联网中进行数据过滤的方法和装置
背景技术 [0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置. [0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络.具体地,物联网是指通过各种信息传感设备,如 ...
- ASP.NET中如何删除最近打开的项目和文件的记录
ASP.NTET中总是保留最近打开的项目和文件的记录,甚至是已删除的它也不删.下面介绍几种删除的方法: 第一种:建立一个bat文件,以后双击即可清除,内置代码如下: @echo off@REG Del ...
- excel中的数据导入oracle方法
SQL_loader批量上传数据 1. 注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...
- ArcGIS中的数据连接问题——数据类型不统一
博主在研究空间数据分布的时候经常会用到 ArcGIS 进行空间数据可视化.但是有时候会由于数据类型不统一而无法将 csv 中的数据连接到底图上.比如在底图中的数据是字符串格式,而 csv 中是数字格式 ...
- 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇
在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
提醒大家,Object.prototype.toString().call(param)返回的[object class]中class首字母是大写,像JSON这种甚至都是大写,所以,大家判断的时候可以 ...
随机推荐
- 一次写文,多平台直接粘贴&打造最流畅的写作流程
文字爱好者的痛点 这一段可以跳过,解决办法在后面.因为大家既然痛过,也就懂了. 对于很多文字爱好者来说,都希望写一篇文章后,可以实现多平台发布. 国内的很多平台都开始支持 Markdown,除了微信公 ...
- solr java代码
添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- Genymotion模拟器的安装及脚本制作
在上一篇博文中,讲到这一篇会介绍Genymotion的安装方式.大家都知道,Genymotion是一个模拟器,获取会质疑了,直接连接真机就好了,为何还要配置模拟器?我也是用真机实践后,才选择安装的模拟 ...
- [原创] 为Visio添加公式编辑器工具栏按钮
前言 作为理工科的学生,在写论文时,难免会在示意图中添加一些公式来说明研究内容.常用的画图工具就是 Visio .而常用的公式编辑器就是 Mathtype .对于 Word 这种软件,Mathtype ...
- svn新建文件不能提交的解决方法
svn新建文件不能提交的解决方法 在当前新建文件的目录下,右键空白处: 选择Properties 找到所有有ignore字眼的属性,查看这个属性的继承目录(inherited from),入我的是cl ...
- LoadRunner11.安装破解
Loadrunner安装及破解 一. 安装 1. 将ISO文件导入,打开光驱,运行“setup.exe” 2. 点击安装,部分机器会提示缺少“Microsoft Visual C++ 2005 S ...
- Django模板语言, 过滤器整理
Django模板语言,过滤器整理 1. add {{ value|add:"2" }} 把add后的参数加给value: 处理时,过滤器首先会强制把两个值转换成Int类型. 如果强 ...
- Spring Boot 整合 Web 开发
这一节我们主要学习如何整合 Web 相关技术: Servlet Filter Listener 访问静态资源 文件上传 文件下载 Web三大基本组件分别是:Servlet,Listener,Filte ...
- js 判断字符串是否存在某个字符串
可使用String和Regexp对象的相关方法进行处理,如下 一.String对象方法 1.使用indexOf()方法,返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则 ...
- FastDfs之TrackerServer的详细配置介绍
# is this config file disabled # false for enabled # true for disabled disabled=false #当前配置是否不可用fals ...