最简单的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 ...
随机推荐
- Nacos配置服务原理
Nacos Client配置机制 spring加载远程配置 在了解NACOS客户端配置之前,我们先看看spring怎么样加载远程配置的.spring 提供了加载远程配置的扩展接口 PropertySo ...
- Mars视频笔记——Animation
Animations的使用(1) 什么是Animations 提供了一系列的动画效果,可以应用在绝大多数控件中 Animations的分类 1 Tweened Animations 渐变动画 提供了旋 ...
- 二分练习题2 查找大于等于x的最小元素 题解
题目描述 现在告诉你一个长度为 \(n\) 的有序数组 \(a_1, a_2, ..., a_n\) ,以及 \(q\) 次询问,每次询问会给你一个数 \(x\) ,对于每次询问,你需要输出数组 \( ...
- Airflow:TypeError an integer is required (got type NoneType) 一次诡异问题排查
当使用rabbitmq作为airflow的broker的时候,启动scheduler,即执行airflow scheduler命令的时候抛出以下异常: Traceback (most recent ...
- Java中关于泛型集合类存储的总结
集合类存储在任何编程语言中都是很重要的内容,只因有这样的存储数据结构才让我们可以在内存中轻易的操作数据,那么在Java中这些存储类集合结构都有哪些?内部实现是怎么样?有什么用途呢?下面分享一些我的总结 ...
- 关于java属性字段命名
最近项目定义vo的时候,boolean类型数据定义成isProperty类型的,导致系统间数据交互过程中报错. 网上爬了良久: JavaBean命名规范里面规定,对于primitive和自定义类类型的 ...
- filebeat相关registry文件内容解析
filebeat的registry文件中存放的是被采集的所有日志的相关信息. linux中registry中一条日志记录的内容如下 {"source":"/var/log ...
- python Fatal error in launcher
1.之前电脑上只安装了一个python2.7时pip install virtualenv安装了virtualenv,后来又装了py3.6.最近想做断网环境下的虚拟环境快速移植发现查看virtuale ...
- Spring Boot 简介与入门(2.1.6版)
Spring Boot 2.1.6 版 与时俱进是每一个程序员都应该有的意识,当一个Java程序员在当代遍布的时候,你就该意识到能多学点什么.可观的是后端的框架是稳定的,它们能够维持更久的 ...
- Java8新特性——stream流
一.基本API初探 package java8.stream; import java.util.Arrays; import java.util.IntSummaryStatistics; impo ...