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)的更多相关文章

  1. ArcGIS Engine开发之地图基本操作(4)

    ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据 ...

  2. ArcGIS Engine开发之地图基本操作(3)

    地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...

  3. ArcGIS Engine开发之地图基本操作(2)

    地图数据的加载 1.加载地图文档 ArcGIS Engine支持加载多种类型的数据,有矢量数据的Coverage.Shapefile.dwg/dxf文件,栅格数据的BMP.GRID.控件数据库等.很多 ...

  4. ArcGIS Engine开发之地图浏览

    地图的浏览功能包括缩放.移动.量测旋转等. 1.放大与缩小 无论是放大还是缩小,都是通过改变MapControl中当前视图的范围Extent属性来实现的,主要用到包络线(Envelope)类. 包络线 ...

  5. ArcGIS Engine开发之地图导出

    关于地图导出的方法有很多,但是核心技术就那么一点.下面是从项目实战中总结的一部分地图导出的方法:(以全域导出和区域导出为例) 1.由于地图导出用到的函数和方法容易重复,增加了工作量故首先将其进行封装成 ...

  6. ArcGIS Engine开发前基础知识(2)

    ArcGIS基本控件简介 ArcGIS Engine控件是一组可视化的开发组件,每个ArcGIS Engine控件都是一个COM组件.这些组件包括MapControl,PageLayoutContro ...

  7. C#,ArcGIS Engine开发入门教程

    C#,ArcGIS Engine开发入门教程 转自:http://blog.csdn.net/yanleigis/article/details/2233674  目录(?)[+] 五实现 一 加载A ...

  8. ArcGIS Engine开发基础总结(一)

    标准Engine功能 地图浏览    地图制作 数据查询 数据分析 及 所有的开发控件 —MapControl, PageLayout, Toolbar, TOC, ArcReader 对所有矢量和栅 ...

  9. ArcGIS Engine开发鹰眼图的功能(基础篇)

    鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼 ...

随机推荐

  1. Struts2数据校验

    Struts2数据校验 1.常见数据校验方法 表单数据的校验方式: 表单中的数据必须被效验以后才能够被使用,常用的效验方式分为两种: 前台校验:也称之为客户端效验,主要是通过JS编程的方式进行表单数据 ...

  2. JS案例之2——cycle元素轮播

    元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...

  3. CYQ.Data V5 分布式自动化缓存设计介绍

    前方: 其实完成这个功能之前,我就在思考:是先把想法写了来,和大伙讨论讨论后再实现,还是实现后再写文论述自己的思维. 忽然脑后传来一个声音说:你发文后会进入发呆阶段. 所以还是静下心,让我轻轻地把代码 ...

  4. 一步步开发自己的博客 .NET版(4、文章发布功能)百度编辑器

    前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做个插件,任何网站上的技术 ...

  5. 浅谈浏览器http的缓存机制

    针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原理也是各大公司面试时几乎必考的问题. 之所以还写一篇这样的文章,是因为近期都在搞新技术,想“回归”下基础,也希望 ...

  6. Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇

    目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...

  7. WCF : 修复 Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service 问题

    摘要 : 最近遇到了一个奇怪的 WCF 安全配置问题, WCF Service 上面配置了Windows Authentication. IIS上也启用了 Windows Authentication ...

  8. 用Go语言做产品半年的一些感觉

    用Go语言做产品刚好半年,有一些感觉跟大家说道说道. 在使用Go之前,我常常想象,无法使用先进的Debug工具会对工作进度造成多么巨大的影响.甚至在Visual Studio的娇惯下认为,不能调试基本 ...

  9. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

  10. STM32的入侵检测是干什么用的

    [引]:侵入检测的作用就是监测侵入事件,保护重要的数据不被非法窃取. 你的数据是保存在RAM里的;但是一掉电RAM里的数据就没了;有一块地方,后备电池相关的一块RAM的数据却放不掉(除非电池没电了); ...