ArcGIS Engine开发之地图基本操作(1)
ArcGIS提供的各类数据形式以及相应接口
1. 空间数据
在GIS软件中,空间数据有多种不同的形式存在。按照不同的划分标准可以分为矢量数据和栅格数据、GIS格式数据和非GIS格式数据(CAD格式)、空间数据库数据(个人数据库、ArcSDE数据库)和文件数据。这些数据在ArcGIS中组织为地图文档数据,以扩展名mxd表示。“.mxd”文件是一个项目的工程文件,主要记载一个工程包含哪些图层,图层文件的对应物理位置,每一个图层的符号是如何设置的等描述性信息,但它并不存储实实在在的空间数据。
2.工作空间
工作空间(Workspace) 对象,在物理级别上相当于地理数据库本身,在逻辑上是一个包含空间数据集和非空间数据集的数据容器。它包含数据集、要素类、表等数据。在GeoDatabase类库中,由esriWorkSpaceType枚举类型指定的WorkSpace类型有三类:文件工作空间esriFileSystemWorkSpace、本地数据库工作空间esriLocalDatabaceWorkspace、远程数据库工作空间esriRemoteDatabaseWorkspace。具体关系见下表:
工作空间工厂对象 | 工作空间对应类型 | 描述 |
AccessWorkapaceFactory | esriLoaclDatabaseWorkspace | 打开个人地理数据库 |
ArcInfoWorkspaceFactory | esriFileSystemWorkspace | 打开ArcInfo工作空间文件 |
CadWorkspaceFactory | esriFileSystemWorkspace | 打开CAD文件的工作空间 |
OLEDBWorkspaceFactory | esriRemoteDatabaseWorkspace | 使用OLEDB打开数据库的空间文件 |
SdeWorkspaceFactory | esriRemoteDatabaseWorkspace | 打开SDE数据库的工作空间 |
ShapefileWorkspaceFactory | esriFileSystemWorkspace | 打开Shapefile文件的工作空间 |
TinWorkspaceFactory | esriFileSystemWorkspace | 打开TIN文件的工作空间 |
TextFileWorkspaceFactory | esriFileSystemWorkspace | 打开文本文件的工作空间 |
数据的加载需要先打开相对应的工作空间。工作空间是一个普通类,因此不能直接创建。为获得一个工作空间,需要使用工作工厂WorkspaceFactory对象来创建。
1.Iworkspace接口
Iworkspace接口定义了访问空间数据库的各种属性和方法,如工作空间的连接属性等。通过Iworkspace可以实例化现有数据集和创建新数据集。由于工作空间是一个普通类,需要得到工作空间,需要通过工作空间工厂来创建。
2.IworkspaceFactory接口
IworkspaceFactory接口定义了创建、打开工作空间的方法和对工作空间工厂信息成员的访问。用户可以通过工作空间工厂管理不同类型的工作空间,所有的工作对象都可以通过此接口产生。
IworkspaceFactory接口产生的Create方法产生一个新的工作空间对象,不同类型的工作空间对象是不同的,如AccessWorkspaceFactory产生个人地理数据库类型的工作空间,为*.mdb类型文件;ShapefileWorkspaceFactory对象则产生文件夹形式的工作空间。
IworkspaceFactory接口的Open方法和OpenFromFile方法可以用于打开一个文件类型的数据,如*.mdb/*.shp/*.dwg/*.img等。
MapControl控件接口
MapControl控件与ArcMap中的数据视图(DataView)相对应,主要用于图形显示,它是一个自动化控件,MapControl提供的相关接口如下:
1.IMapControlDefault接口
此接口是MapControl空间的默认接口,是代表当前版本的最新接口,开发环境自动使用这个接口定义的属性和方法。此接口的使用方法如下:
IMapControlDefault pMapControl;
pMapControl=axMapControl1.Object as IMapControlDefault;
2.IMapControl2接口
IMAPControl2接口提供了一系列的属性和方法,如设置MapControl控件的显示属性、控件外观、添加及管理数据图层和地图文档、在控件上绘制图形和返回几何对象等。
显示MapControl控件的属性有AboutBox等,定义了控件的外观的属性有Apperance、BorderStyle和BackColor等,添加、移动、删除图层的方法有AddLayer、AddLayerFromFile、AddShapefile、ClearLayer、DeleteLayer、MoveLayerTo和Pan等,绘制图形的方法有DrawShape和DrawText等,返回几何对象的方法有TrackCircle、TrackLine、TrackPolygon和TrackRectangle等。
3.IMapControl3接口
IMapControl3接口在继承IMapControl2接口的基础上,增加了以下属性和方法:
CustomProperty:设置自定义控件属性。
DocumentFilename:返回MapControl中载入的地图文档的文件名。
DocumentMap:返回MapControl中最后载入的地图名称。
KeyIntercept:返回或设置MapControl控件截取的键盘按键信息,按键信息类型如下:
枚举值 | Value | 描述 |
esriKeyInterceptNone | 0 | 没有截取鼠标按键 |
esriKeyInterceptArrowKeys | 1 | 截取箭头按键 |
esriKeyInterAlt | 2 | 截取Alt按键 |
esriKeyInterTab | 4 | 截取Tab按键 |
esriKeyInterceptEnter | 8 | 截取Enter按键 |
Object:返回MapControl控件
ShowMapTips:控制是否显示地图的Map Tips。
TipDelay:设置Map Tips的延迟时间。
TipStyle:设置Map Tips的显示样式。
SuppressResizeDrawing:当控件尺寸发生变化时组织数据实时重绘。
4.IMapControl4接口
IMapControl4接口在IMAPControl3接口的基础上,增加了两个属性,分别是AutoKeyboardScrolling(确定键盘滚动轮是否起作用)和AutoMouseWheel(确定鼠标滚轮是否起作用)。
5.IMAPControlEvents2接口
此接口为事件接口,定义了MapControl能够处理的全部事件,如OnMouseDown、OnMouseMove、OnKeyUp、OnBeforeScreenDraw、OnAfterDraw和OnExtentUpdataed等。
(未完待续)
ArcGIS Engine开发之地图基本操作(1)的更多相关文章
- ArcGIS Engine开发之地图基本操作(4)
ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据 ...
- ArcGIS Engine开发之地图基本操作(3)
地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...
- ArcGIS Engine开发之地图基本操作(2)
地图数据的加载 1.加载地图文档 ArcGIS Engine支持加载多种类型的数据,有矢量数据的Coverage.Shapefile.dwg/dxf文件,栅格数据的BMP.GRID.控件数据库等.很多 ...
- ArcGIS Engine开发之地图浏览
地图的浏览功能包括缩放.移动.量测旋转等. 1.放大与缩小 无论是放大还是缩小,都是通过改变MapControl中当前视图的范围Extent属性来实现的,主要用到包络线(Envelope)类. 包络线 ...
- ArcGIS Engine开发之地图导出
关于地图导出的方法有很多,但是核心技术就那么一点.下面是从项目实战中总结的一部分地图导出的方法:(以全域导出和区域导出为例) 1.由于地图导出用到的函数和方法容易重复,增加了工作量故首先将其进行封装成 ...
- ArcGIS Engine开发前基础知识(2)
ArcGIS基本控件简介 ArcGIS Engine控件是一组可视化的开发组件,每个ArcGIS Engine控件都是一个COM组件.这些组件包括MapControl,PageLayoutContro ...
- C#,ArcGIS Engine开发入门教程
C#,ArcGIS Engine开发入门教程 转自:http://blog.csdn.net/yanleigis/article/details/2233674 目录(?)[+] 五实现 一 加载A ...
- ArcGIS Engine开发基础总结(一)
标准Engine功能 地图浏览 地图制作 数据查询 数据分析 及 所有的开发控件 —MapControl, PageLayout, Toolbar, TOC, ArcReader 对所有矢量和栅 ...
- ArcGIS Engine开发鹰眼图的功能(基础篇)
鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼 ...
随机推荐
- CentOS 7 安装出现 /dev/root does not exits 导致无法安装的问题
本人在官网下的是这个 CentOS-7-x86_64-DVD-1611.iso ,然后用UltraISO 9.6制作的U盘启动盘,不过在安装的时候出现了这个错误, 然后也是搜了好久,试了一下,下面这个 ...
- mysql join 和left join 对于索引的问题
今天遇到一个left join优化的问题,搞了一下午,中间查了不少资料,对MySQL的查询计划还有查询优化有了更进一步的了解,做一个简单的记录: select c.* from hotel_info_ ...
- 我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没有一个简单的了解,或一个系统的入门学习.换句 ...
- Vim新手入门资料和一些Vim实用小技巧
一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为阿里巴巴高级技术专 ...
- Storm介绍(二)
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是Storm系列之一,主要介绍Storm的架构设计,推荐读者在阅读 ...
- iOS实现UICollectionViewDataSource与Controller的分离
之前每次用到UICollectionView的时候都会都需要在Controller里面去实现DataSource & Delegate方法 单独Delegate方法还好不是很多, 但是再加上D ...
- Xshell生成密钥key(用于Linux 免密码登录)
- Android属性动画
这几天看郭神的博客 Android属性动画完全解析(上),初识属性动画的基本用法之后,我自己突然想实现一种动画功能,就是我们在携程网.阿里旅行等等手机APP端买火车票的时候,看到有选择城市,那么就有出 ...
- C#字符串的倒序输出
介绍 在本文中,我将演示如何将字符串的单词倒序输出.在这里我不是要将“John” 这样的字符串倒序为成“nhoJ”,.这是不一样的,因为它完全倒序了整个字符串.而以下代码将教你如何将“你 好 我是 缇 ...
- 数据库日常维护-CheckList_03有关数据库数据文件大小检查
日常数据维护中容量规划是每个DBA的基础工作之一,也是非常重要的工作.在生产环境中一些比较重要的业务数据库会用前期容量规划不足,或出现意外的爆发式的数据增长,直至盛满整个磁盘空间,系统会无法使用,最终 ...