最简单的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, ); //数据目录
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应用程序(中)的更多相关文章
- 最简单的ArcGIS Engine应用程序(下)
在中篇我们讲到使用OpenFileDialog控件可以添加shp文件.(最简单的ArcGIS Engine应用程序(中)) 添加lyr文件的操作也是大同小异的. using System; using ...
- 最简单的ArcGIS Engine应用程序(终)
在上文的基础上,下面将使用简单的代码实现要素类属性的查看.(最简单的ArcGIS Engine应用程序(下)) 新增一个窗体,并从工具箱拖动DataGridView控件到该窗体中.设置该对象的Dock ...
- 最简单的ArcGIS Engine应用程序(上)
名词: IWorkspaceFactory 工作空间工厂 ShapeFileWorksapceFactory 矢量文件工作空间工厂 IWorkspce 工作空间 IFeatrueWorkspace 要 ...
- C#+ArcGIS Engine 获取地图中选中的要素
转自 C#+ArcGIS Engine 获取地图中选中的要素 C#+ArcGIS Engine 获取地图中选中的要素 提供一种简单遍历获取地图中选中要素的方法,代码如下: List<IFeatu ...
- ArcGIS Engine读取GDB中的Shape
string gdbPath = @"D:\Documents\ArcGIS\Default.gdb"; FileGDBWorkspaceFactoryClass pFileGDB ...
- ArcGIS Engine能够做什么?
转自原文ArcGIS Engine能够做什么? ArcGIS Engine是一组跨平台的嵌入式ArcObjects,它是ArcGIS软件产品的底层组件,用来构建定制的GIS和桌面制图应用程序,或是向原 ...
- 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划
前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...
- ArcGIS Engine控件运行许可(转)
ArcGIS Engine控件运行许可 Runtime绑定: 在ArcGIS Engine10.0中,许可方式发生了一定的变化,ArcGis10有一个新的要求---runtime绑定.就是在任何A ...
- ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成: 面向开发人员的软件开发包(ArcGIS Engine Developer k ...
随机推荐
- Net基础篇_学习笔记_第十天_方法_方法的练习
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- GlusterFs卷类型分析及创建、使用(结合kubernetes集群分析)
引言 本文通过对卷类型的分析对比,来帮助读者选取生产环境最符合服务的挂载存储,命令可结合<glusterfs详解及kubernetes 搭建heketi-glusterfs>进行实验,下面 ...
- xshell使用小技巧
1. 方便复制:Tool --> options --> right buttion(paste the clipboard contents) and copy selected te ...
- Metasploit工具----漏洞利用模块
漏洞利用是指由渗透测试者利用一个系统.应用或者服务中的安全漏洞进行的攻击行为.流行的渗透攻击技术包括缓冲区溢出.Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的 ...
- springmvc request foward 和 redirect
---恢复内容开始--- 最近在实现那个学生信息录入的时候,先是在添加学生的页面添加完,然后想直接调用Conroller层遍历学生的方法,我的意思就是在contoller一个方法怎么直接调用另外一个方 ...
- TestNG(九) 异常测试
package com.course.testng.suite; import org.testng.annotations.Test; public class ExpectedExeption { ...
- Java Synchronized Method This Static Class Object 区别
1. 必须基于对象 Synchronized Method 和 Synchronized(this) 块,除了范围小点 (方法和块),没差别都是阻塞整个对象 - 如果对象有多个 Synchronize ...
- springboot jsp,过滤器,拦截器
springboot使用jsp,过滤器,拦截器(拦截器与过滤器区别重点) jsp使用配置 一 创建springboot项目在maven中暂时只添加两个Dependencies :devtools(热部 ...
- JavaScript之操作符
计算机被发明的初衷仅仅是为了快速实现一些数学计算,然而经过多年发展,计算机已经不单单能实现快速计算这么简单的工作了,现代计算机不仅能够进行数值的计算,还能进行逻辑计算,还具备存储记忆功能,是能够按照程 ...
- Anaconda、TensorFlow安装和Pycharm配置详细教程,亲测有效!
目录 1.Anaconda下载与安装 2.Anaconda安装成功与否测试 3.安装python 4.检查TensorFlow环境添加成功与否 5.TensorFlow安装 6.测试TensorFlo ...