介绍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这种甚至都是大写,所以,大家判断的时候可以 ...
随机推荐
- SpringBoot使用注解的方式构建Elasticsearch查询语句,实现多条件的复杂查询
背景&痛点 通过ES进行查询,如果需要新增查询条件,则每次都需要进行硬编码,然后实现对应的查询功能.这样不仅开发工作量大,而且如果有多个不同的索引对象需要进行同样的查询,则需要开发多次,代码复 ...
- SpringBoot 2 快速整合 | Hibernate Validator 数据校验
概述 在开发RESTFull API 和普通的表单提交都需要对用户提交的数据进行校验,例如:用户姓名不能为空,年龄必须大于0 等等.这里我们主要说的是后台的校验,在 SpringBoot 中我们可以通 ...
- 如何在Centos服务器上搭建起Oracle10、VNC、以及FTP
一.重装和分区 1.配置所需磁盘阵列(Raid): 2.正确分区: 3.Centos安装:过于简单,请自行bd. 二.连网 系统安装完成之后,我们需为其分配IP和DNS: "编辑连接&quo ...
- prometheus告警模块alertmanager注意事项(QQ邮箱发送告警)
配置alertmanager的时候,都是根据网上的教程来配置的. 因为我是用QQ邮箱来发送告警的,所以alertmanager.yml的邮箱配置如下: global: resolve_timeout: ...
- 让我们一起学习如何使用AIDL,它其实并不难(Android)
前言 该篇文件讲述的是AIDL最基本的使用(创建.调用),关于对于AIDL更深的认识,在后续的随笔中,会持续与大家分享并探讨. 正文 AIDL的定义(什么是AIDL?) AIDL的应用场景(AIDL可 ...
- CSS新增的伪类选择器
:root 选择文档的根元素,等同于 html 元素 :empty 选择没有子元素的元素 :target 选取当前活动的目标元素 :not(selector) 选择除 selector 元素意外的元素 ...
- [Linux] CentOS 显示 -bash: vim: command not found
转载自:https://www.cnblogs.com/wenqiangwu/p/3288349.html i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim ...
- Mysql学习笔记整理之引擎
mysql的引擎: myisam引擎 Mysql 5.5之前默认的存储引擎 数据.索引分别存储 (数据物理磁盘---索引物理磁盘) .MYD 存储数据 表级索 ...
- Linux之VMWare下Centos7的三种网络配置过程
Linux之VMWare下Centos7的三种网络配置过程 环境: 虚拟软件:VMWare 14.0 客户机:windows 10 虚拟机:centos 7 VMware三种网络连接方式 Bridge ...
- WebStorm在Font设置FontSize无效解决方法
我的WebStorm设置了主题.所以直接在File-Settings-Editor-Font设置了无效.它会提醒你要在主题里面改.主题在哪里呢 找到File-Settings-Editor-Color ...