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

名词:
IWorkspaceFactory 工作空间工厂
ShapeFileWorksapceFactory 矢量文件工作空间工厂
IWorkspce 工作空间
IFeatrueWorkspace 要素工作空间
IFeatureClass 要素类
IFeatureLayer 要素图层
FeatureLayerClass 要素图层类
ILayer 图层对象
IMap 地图对象
加载指定的shp文件(代码分析)
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)
{
//通过工作空间工厂创建一个矢量文件工作空间工厂, 通过矢量文件工作空间加载数据并保存在一个新创建的工作空间中。
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();
IWorkspace pWorkspace1 = pWorkspaceFactory.OpenFromFile(@"D:\data", ); //数据目录 //将这个新创建的工作空间强转成要素工作空间,通过要素工作空间打开一个要素类并保存在一个新创建的要素类中。
IFeatureWorkspace pFeatureWorkspce = pWorkspace1 as IFeatureWorkspace;
IFeatureClass pFC = pFeatureWorkspce.OpenFeatureClass("华东地区.shp"); //通过要素图层创建一个要素图层类,将新创建的要素类放在刚创建的要素图层类中并按照原本的名字命名。
IFeatureLayer pFLayer = new FeatureLayerClass();
pFLayer.FeatureClass = pFC;
pFLayer.Name = pFC.AliasName; //将创建的要素图层类强转成图层对象并保存一个新创建的图层对象中。
ILayer pLayer = pFLayer as ILayer; //绑定地图对象到控件axMapControl
IMap pMap = axMapControl1.Map; //地图对象添加新创建的图层对象
pMap.AddLayer(pLayer); //将控件axMapControl设置为动态刷新
axMapControl1.ActiveView.Refresh(); }
}
}
简述:
通过工作空间工厂创建一个矢量文件工作空间工厂,通过矢量文件工作空间加载数据并保存在一个新创建的工作空间中。
将这个新创建的工作空间强转成要素工作空间,通过要素工作空间打开一个要素类并保存在一个新创建的要素类中。
通过要素图层创建一个要素图层类,将新创建的要素类放在刚创建的要素图层类中并按照原本的名字命名。
将创建的要素图层类强转成图层对象并保存一个新创建的图层对象中。
绑定地图对象到控件axMapControl。
地图对象添加新创建的图层对象。
将控件axMapControl设置为动态刷新。
谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!
最简单的ArcGIS Engine应用程序(上)的更多相关文章
- 最简单的ArcGIS Engine应用程序(中)
上一篇中只能添加代码中指定的shp文件(最简单的ArcGIS Engine应用程序(上)) 为了让用户可以浏览磁盘加载指定的shp文件,需做一下调整. 从工具箱往窗体上添加一个OpenFileDial ...
- 最简单的ArcGIS Engine应用程序(终)
在上文的基础上,下面将使用简单的代码实现要素类属性的查看.(最简单的ArcGIS Engine应用程序(下)) 新增一个窗体,并从工具箱拖动DataGridView控件到该窗体中.设置该对象的Dock ...
- 最简单的ArcGIS Engine应用程序(下)
在中篇我们讲到使用OpenFileDialog控件可以添加shp文件.(最简单的ArcGIS Engine应用程序(中)) 添加lyr文件的操作也是大同小异的. using System; using ...
- ArcGIS Engine能够做什么?
转自原文ArcGIS Engine能够做什么? ArcGIS Engine是一组跨平台的嵌入式ArcObjects,它是ArcGIS软件产品的底层组件,用来构建定制的GIS和桌面制图应用程序,或是向原 ...
- ArcGIS Engine控件运行许可(转)
ArcGIS Engine控件运行许可 Runtime绑定: 在ArcGIS Engine10.0中,许可方式发生了一定的变化,ArcGis10有一个新的要求---runtime绑定.就是在任何A ...
- ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成: 面向开发人员的软件开发包(ArcGIS Engine Developer k ...
- 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立
原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...
- ARM入门实践(一)----Mini6410上最简单的LED点灯裸机程序
Mini6410上最简单的LED点灯裸机程序 : 实验环境: 根据友善教程,要用ADS,据说现在都不用这个了,但是为了打开友善给的mcp工程,就下了一个,Win7下弄上兼容模式和管理员权限,再下一个S ...
- 如何在WPF程序中使用ArcGIS Engine的控件
原文 http://www.gisall.com/html/47/122747-4038.html WPF(Windows Presentation Foundation)是美国微软公司推出.NET ...
随机推荐
- Spring boot 集成 Druid 数据源
Druid是阿里开源的一个JDBC应用组件,其中包括三部分: DruidDriver:代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource:高效可管理 ...
- Small Spring系列一:BeanFactory(一)
人生如逆旅,我亦是行人. 前言 Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用. 准备 bean-v1.xml配置b ...
- Hive入门--2.分区表 外部分区表 关联查询
1.查看mysql中metastore数据存储结构 Metastore中只保存了表的描述信息(名字,列,类型,对应目录) 使用SQLYog连接itcast05 的mysql数据库 查看hive数据库 ...
- charles Glist发布设置
本文参考:charles Glist发布设置 在这里可以设置Github账户, 发布list的大小限制:等等: 在这里 Auh 就是设置Github账户, 设置登陆你的Github后,才能针对该用户进 ...
- ES6入门八:Promise异步编程与模拟实现源码
Promise的基本使用入门: ——实例化promise对象与注册回调 ——宏任务与微任务的执行顺序 ——then方法的链式调用与抛出错误(throw new Error) ——链式调用的返回值与传值 ...
- Spark学习之Scala的基础知识
Scala的变量声明 在Scala创建变量的时候,必须使用val或者var val,变量值不可修改,一旦分配不能重新指向别的值 var,分配后,可重新指向类型相同的值 举例 val lines = s ...
- Kerberoasting攻击
前面我们介绍了<Windows本地认证>.<Windows网络认证>.<Windows域认证>和<SPN扫描>,这次继续讲解域内相关的东西. 0x01介 ...
- 第九周java动手动脑
1.使用Files. walkFileTree()找出指定文件夹下所有扩展名为.txt和.java的文件. import java.io.IOException; import java.nio.fi ...
- 两个变量交换数字 不用第三个变量的情况下 int a = 5,b = 6
今天可是涨见识额 记录一下 第一种方法: a=a+bb=a-ba=a-b 第二种: b= a+(a=b)*0 一句话搞定
- 88.CSS---Grid 网格布局教程
grid 兼容性查看请点此处 最新Grid兼容 grid 布局就是给父元素(容器)添加display:grid,然后使子元素(项目)改变布局, 1 2 3 4 5 6 7 8 9 上面九个正方形的代码 ...