牟乃夏ArcEngine开发教程:第3章地图操作基本功能.pptx
- 文档编号:2647761
- 上传时间:2022-11-05
- 格式:PPTX
- 页数:65
- 大小:1.84MB
牟乃夏ArcEngine开发教程:第3章地图操作基本功能.pptx
《牟乃夏ArcEngine开发教程:第3章地图操作基本功能.pptx》由会员分享,可在线阅读,更多相关《牟乃夏ArcEngine开发教程:第3章地图操作基本功能.pptx(65页珍藏版)》请在冰豆网上搜索。
牟乃夏牟乃夏ArcGISEngineArcGISEngine地理信地理信息系统开发教程息系统开发教程配套配套PPT-PPT-第3章地图操作基本功能目录1.空间数据与工作空间2.MapControl控件接口3.数据加载4.地图文档保存5.地图浏览6.书签7.ICommand和ITool命令操作地图8.量测9.要素选择操作10.视图同步11.TOCControl控件1.空间数据与工作空间1.空间数据在GIS软件中,空间数据有多种不同的存在形式。
按照不同的划分标准可以分为矢量数据和栅格数据、GIS格式的地理数据与非GIS格式的数据(如CAD格式等)、空间数据库数据(如个人数据库、ArcSDE数据库等)和文件数据(ShapeFile格式、Coverage格式)等。
2.工作空间工作空间(Workspace)对象,在物理级别上相当于地理数据库本身,在逻辑上是一个包含空间数据集和非空间数据集的数据容器。
它包含数据集(Dataset)、要素类(FeatureClass)、表(Table)等数据。
1.空间数据与工作空间工作空间工厂对象工作空间对应类型描述AccessWorkspaceFactoryesriLocalDatabaseWorkspace打开PersonalGeoDatabaseArcInfoWorkspaceFactoryesriFileSystemWorkspace打开ArcInfo工作空间文件CadWorkspaceFactoryesriFileSystemWorkspace打开CAD文件的工作空间OLEDBWorkspaceFactoryesriRemoteDatabaseWorkspace使用OLEDB打开数据库的工作空间文件SdeWorkspaceFactoryesriRemoteDatabaseWorkspace打开SDE数据库的工作空间ShapefileWorkspaceFactoryesriFileSystemWorkspace打开ShapeFile文件的工作空间TinWorkspaceFactoryesriFileSystemWorkspace打开TIN数据文件的工作空间TextFileWorkspaceFactoryesriFileSystemWorkspace打开文本文件的工作空间常用的工作空间及工作空间对象常用的工作空间及工作空间对象1.空间数据与工作空间工作空间数据加载需要先打开相对应的工作空间。
IWorkspace接口:
IWorkspace接口定义了访问工作空间各种属性的方法,如工作空间的连接属性等。
通过IWorkspace接口可实例化现有数据集和创建新数据集。
由于WorkSpace是一个普通类,要获得WorkSpace,需要通过工作空间工厂(WorkspaceFactory)来创建。
IWorkspaceFactory接口:
IWorkspaceFactory接口定义了创建、打开工作空间的方法和对工作空间工厂信息成员的访问。
用户可通过工作空间工厂管理不同类型的工作空间,所有的工作空间对象都可通过此接口产生。
IWorkspaceFactory接口的Create方法可产生一个新的工作空间对象,不同类型的WorkspaceFactory对象,其Create方法产生的工作空间对象是不同的。
IWorkspaceShapefileFactory接口的Open方法和OpenFromFile方法可以用于打开一个已经存在的工作空间,Open方法用于打开一个SDE数据库,OpenFromFile方法用于打开一个文件类型的数据,如*.tif、*.img等。
2.MapControl控件接口1)IMapControlDefault接口IMapControlDefault接口是MapControl控件的缺省接口,是代表当前版本的最新接口,开发环境自动使用这个接口定义的属性和方法。
2)IMapControl2接口IMapControl2接口提供了一系列的属性和方法,如设置MapControl控件的显示属性、控件外观、添加和管理数据图层和地图文档、在控件上绘制图形和返回几何对象等。
3)IMapControl3接口IMapControl3接口在继承IMapControl2的基础上,增加了以下属性和方法:
CustomProperty:
设置自定义控件属性。
DocumentFilename:
返回MapControl中载入的地图文档的文件名。
DocumentMap:
返回MapControl中最后载入的地图名称。
KeyIntercept:
返回或设置MapControl控件截取的键盘按键信息。
Object:
返回MapControl控件。
ShowMapTips:
控制是否显示地图的MapTips。
TipDelay:
设置MapTips的延迟时间。
TipStyle:
设置MapTips的显示样式。
SuppressResizeDrawing:
:
当控件尺寸发生变化时阻止数据实时重绘。
2.MapControl控件接口4)IMapControl4接口IMapControl4接口在IMapControl3接口的基础上,增加了两个属性,分别是AutoKeyboardScrolling和AutoMouseWheel。
AutoKeyboardScrolling:
确定键盘滚动轮是否起作用。
AutoMouseWheel:
确定鼠标滚轮是否起作用。
5)IMapControlEvents2接口IMapControlEvent2接口为事件接口,它定义了MapControl能够处理的全部事件,如OnMouseDown、OnMouseMove、OnKeyUp、OnBeforeScreenDraw、OnAfterDraw、OnExtentUpdated等。
3.数据加载1)加载地图文档的方式有三种:
使用IMapControl接口的LoadMxFile方法加载;通过IMapDocument接口加载;使用ArcGISEngine中封装好的类库资源ControlsOpenDocCommandClass加载。
3.数据加载使用IMapControl接口的LoadMxFile方法加载地图文档实现思路如下:
通过.NET框架类提供的打开文件对话框选择要打开的地图文档;用IMapControl接口提供的CheckMxFile方法检查是否为有效的地图文档,若有效,则调用IMapControl接口提供的LoadMxFile方法进行加载。
核心代码3.数据加载通过IMapDocument接口加载IMapDocument接口定义了操作和管理地图文档对象的方法和属性。
使用这个对象可以获取、更新一个文档的内容,设置文档文件的属性以及读、写和保存一个文档文件等。
IMapDocument接口同时扮演着数据显示和数据容器的双重身份,可以通过ActiveView获得Map数据视图,通过FocusMap属性获得当前正在使用的Map对象的数据容器身份。
一个文档对象可能拥有多个Map对象(相当于ArcGIS中的数据框DataFrame),但是在同一时刻内只能有一份Map处于使用状态。
核心代码3.数据加载使用ControlsOpenDocCommandClass加载地图使用ArcGISEngine中封装好的类库资源ControlsOpenDocCommandClass实现地图文档的加载的核心代码如下:
3.数据加载2)加载ShapeFile数据ShapeFile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式。
加载ShapeFile数据的方式有两种:
通过工作空间加载;通过IMapControl接口的AddShapeFile方法加载。
3.数据加载通过工作空间加载ShapeFile文件通过工作空间加载ShapeFile文件主要用到IMap、ILayer、IFeatureLayer和IFeatureClass四个接口。
IMap接口是对地图进行操作的起点,主要用于管理Map对象中的图层对象,要素选择集和空间参考等对象。
ILayer接口是图层对象的通用接口,它提供了操作图层的属性和方法,可用于所有的图层,例如要素图层(FeatureLayer)、栅格图层(RasterLayer)和图形图层集合(CompositeGraphicsLayer)等。
IFeatureLayer接口继承自ILayer接口,提供了访问基于矢量数据图层的属性和方法,图层的数据可以是Geodatabase,ShapeFile或Coverage数据。
IFeatureClass接口是获取和设置要素类属性的主要接口。
如:
获取要素类的类型,得到满足某个查询条件的要素个数,或在要素类中创建一个新的功能等。
Map、Layer、FeatureLayer三者之三者之间的关系的关系:
Map是很多图层的集合,就像ArcMap的mxd文档一样,可以包括很多Layer。
Layer是图层对象,是数据的外壳,必须建立在数据的基础上才有意义。
FeatureLayer是具体的要素图层,需要经过Layer添加到Map中进行显示。
FeatureLayer、FeatureClass的区的区别:
FeaturLayer是加载在地图文档中的矢量数据层,只是要素类的表现形式。
FeatureClass是一组空间实体的集合,在数据表中存储了统一的属性和行为,每一个FeatureClass都有一个Geometry类型。
IFeatureLayer接口继承自ILayer接口,IFeatureClass接口继承自IClass接口;FeatureLayer可以创建自己的对象,而FeatureClass不行。
3.数据加载通过工作空间加载ShapeFile文件的实现思路
(1)创建ShapefileWorkspaceFactory实例pWorkspaceFactory,使用IWorkspaceFactory接口的OpenFromFile方法打开pFeatureWorkspace中存储的基于ShapeFile的工作区;
(2)创建FeatureLayer的实例pFeatureLayer,并定义数据集;(3)使用IMap接口的AddLayer方法加载pFeatureLayer到当前地图。
核心代码3.数据加载通过MapControl的AddShapeFile方法加载ShapeFile文件用MapControl控件的AddShapeFile方法同样可加载ShapeFile文件,这样省去了建立工作空间、数据集等步骤。
调用该方法需要传入两个参数,分别是文件路径和不带扩展名的文件名,调用方法如下:
mainMapControl.AddShapeFile(stringPath,stringfileName);3.数据加载3)加载栅格数据栅格数据是GIS的数据源之一,主要有卫星影像、航空影像、扫描的地图、照片等。
常见的栅格数据格式有*.bmp、*.tif和*.jpg等,这几种栅格数据的工作空间是其所在的文件夹。
添加栅格数据主要用到IRasterPyramid3、IRasterLayer等接口。
IRasterPyramid3接口提供了对栅格数据集的金字塔属性的访问,Present属性用于判断栅格数据集是否存在金字塔,Create方法用于为栅格数据集创建金字塔。
IRasterLayer接口继承自ILayer接口,CreateFromDataset方法用于从已有的栅格数据集对象创建图层;CreateFromRaster方法用于从已有的栅格对象创建图层;Raster属性用于获取IRasterLayer接口中的Raster对象,DisplayResolutionFactor属性用于设置栅格数据的分辨率。
在加载栅格文件时,需引用ESRI.ArcGIS.DataSourcesRaster命名空间。
3.数据加载加载栅格数据的实现思路
(1)用IWorkspaceFactory接口的OpenFromFile方法获得栅格文件的工作区;
(2)用IRasterWorkspace接口的OpenRasterDataset方法获
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 牟乃夏 ArcEngine 开发 教程 地图 操作 基本功能