地理信息系统基本功能开发技术课件.ppt
《地理信息系统基本功能开发技术课件.ppt》由会员分享,可在线阅读,更多相关《地理信息系统基本功能开发技术课件.ppt(96页珍藏版)》请在三一办公上搜索。
1、GIS设计与开发,草环学院农资系 努尔麦麦提.艾尔肯 2014年3月,第二章GIS基本功能开发技术,主要内容ArcGIS开发平台介绍ArcGIS Engine的组件GIS基本功能开发信息检索功能的设计与实现,1,ArcGIS 产品组成,四个关键部分:,ArcGIS Desktop,ArcGIS Engine,ArcGIS Server,ArcIMS,ArcGIS,第一节 ArcGIS 开发平台介绍,2.1.1,ArcGIS简介,1,ArcGIS 9产品组成,第一节 ArcGIS 开发平台介绍,2,ArcObjects与ArcGIS产品,2,ArcObjects与ArcGIS产品,3,ArcOb
2、jects组件库,ArcObjects组件库有3000多个对象可供开发人员调用,其中有细粒度的小对象,例如:Geometry对象,也有粗粒度的大对象,例如:Map对象可以通过ArcObjects来扩展ArcGIS Desktop,定制ArcGIS Engine应用,使用ArcGIS Server实现企业级GIS应用采用ArcObjects可以在多种编程环境中开发,包括C+、支持COM的编程语言、.NET、Java等,3,ArcObjects组件库,可以应用ArcGIS Desktop SDK来扩展ArcGIS Desktop的功能,如添加新的工具、定制用户界面、增加新的扩展模块等,甚至对Arc
3、GIS Desktop应用程序进行完全扩展以提高专业GIS生产能力ArcGIS Server实现了一套标准的Web GIS服务,支持企业级应用,可以建立集中式的GIS服务器来实现GIS功能,发布基于Web的GIS应用,执行分布式GIS运算等,2.1.2 ArcGIS的开发方式1)VBA开发VBA自动包含了ESRI对象库参考,用户可以编写并调试在ArcMap或ArcCatalog中使用的VB宏以及ESRI的对象库,宏命令可以将VB的功能和GIS的功能集成起来。可以使用ArcObjects的所有组;其运行离不开ArcGIS系统框架;,第一节 ArcGIS 开发平台介绍,2.1.2 ArcGIS的开
4、发方式2)插件开发采用COM技术开发基于AE的标准DLL3)基于COM的可执行应用程序开发,第一节 ArcGIS 开发平台介绍,2.1.3 ArcGIS Engine简介ArcGIS Engine是一个简单的、独立于应用程序的ArcObjects编程环境。其SDK提供了一系列嵌入式、应用于ArcGIS Desktop应用程序框架之外的ArcGIS组件。ArcGIS Engine是开发人员用于建立自定义应用程序的嵌入式GIS组件的一个完整类库,第一节 ArcGIS 开发平台介绍,一,ArcGIS Engine的功能,分图层显示专题图,如:道路,河流,行政边界等浏览、缩放地图查看地图上特征要素的信
5、息在地图上显示文本注记在地图上叠加卫星影像或航摄影像在地图上绘制点、线、面几何体通过矩形、圆形或多边形选中地图上的要素通过SQL语句查找要素用各种渲染方式绘制图层,如分级渲染、柱状图渲染、点密度渲染、按比例尺渲染等动态绘制实时数据转换空间数据的坐标系编辑空间数据空间建模与分析,二,ArcGIS Engine的组成,基本服务-几乎所有GIS应用程序都需要的GIS核心模块ArcObjects构成,如几何要素和显示数据存取-可以对栅格和矢量格式,包括Geodatabase进行数据的存取操作地图表达-创建和显示带有符号、注记的地图和专题图开发组件-快速开发应用程序的界面控件扩展模块-ArcGIS En
6、gine运行时,可以与标准功能或其他高级功能一起部署,ArcGIS Engine由一个软件开发工具包(SDK)和一个运行时(Runtime)组成,二,ArcGIS Engine的组成,ArcGIS Engine Developer Kit是一个基于组件的开发产品,主要面向开发人员,能与开发环境集成,提供了开发帮助、类库对象模型以及代码示例等ArcGIS Engine的另一个组件就是其运行时。在部署应用程序时,必须安装相应版本的ArcGIS Engine运行时,二,ArcGIS Engine的组成,ArcGIS Engine的授权文件*.ecp文件授权文件控制用户可以使用哪些功能例如:编辑空间数
7、据ArcGIS Engine开发包使得用户可以创建、修改或者删除在Geodatabase或者shapefile中的矢量要素。标准ArcGIS Engine Runtime可以编辑shapefile和简单的Personal Geodatabase要素,若需要编辑Enterprise Geodatabase数据,则应使用Geodatabase Update扩展,第二节,ArcGIS Engine的组件,一,ArcGIS Engine包含的主要控件:MapControlPageLayoutControlSceneControlGlobeControlToolbarControlTOCControlS
8、ymbologyControlLicenseControlToolbarControl,二,组件的加载,示例:如何使用MapControl, ToolbarControl, TOCControl如何向工具栏添加ArcGIS Engine内置的工具和命令,三,MapControl控件,MapControl的功能管理控件的外观、显示属性和地图属性添加并管理控件中的数据层装载Map文档(mxd)到控件中从其他应用程序拖放数据到控件中显示绘制图形实现的主要接口IMapControlDefaultIMapControl2IMapControl3IMapControlEvents2(事件接口),三,Map
9、Control控件,IMapControlDefault接口该接口是地图控件的缺省接口,多数开发环境自动使用这个接口定义的属性、方法,这个接口也代表了控件最新版本的接口如果需要使用这个接口,则用如下代码:IMapControlDefault pMapControl;pMapControl = axMapControl1.Object as IMapControlDefault;,三,MapControl控件,IMapControl2接口这个接口是任何一个与MapControl相关的任务的出发点,如设置控件外观,设置Map对象或控件的显示属性,添加或者管理数据图层、地图文档,在控件上绘制图形和返
10、回Geometry等控制控件外观界面的属性:Appearance、BorderStyle、BackColor方法:获取Geometry对象:TrackLine, TrackPolygon, TrackRectangle, TrackCircle在控件上绘制图形:DrawShape,DrawText,三,MapControl控件,IMapControl3接口该接口继承于IMapControl2,增加了8个属性和1个方法CustomProperty:设置自定义控件属性DocumentFilename:返回MapControl装入的地图文档的文件名DocumentMap:返回MapControl最后
11、装入的地图名称KeyIntercept:返回或设置MapControl截取键盘按键的信息Object:返回潜在的MapControl控件,三,MapControl控件,当使用IMapControl2接口时:IMapControl2 pMapControl;pMapControl = axMapControl1.Object as IMapControl2;或pMapControl = axMapControl1.GetOcx() as IMapControl2;,三,MapControl控件,ShowMapTips:确定是否显示地图的Map TipsTipDelay:设置Map Tips的延迟
12、时间TipStyle:设置Map Tips的显示样式SuppressResizeDrawing():当控件尺寸发生变化时组织数据实时重绘,三,MapControl控件,IMapControlEvents2接口事件接口,定义了MapControl能够处理的全部事件,如OnMouseDown, OnAfterDraw, OnMouseMove等,其他如OnAfterscreenDraw是绘屏结束后触发的事件,OnExtentUpdated是地图的Extent属性发生变化时触发的事件,四,PageLayoutControl控件,1)Page对象-管理PageLayout对象中页面2)SnapGrid
13、对象-用于摆放元素而设置的辅助点,便于使用者对齐元素3)RulerSettings对象-辅助尺4)MapSurround对象,五,ToolbarControl控件,主要用于提供操作地图对象的工具条,是一个集成多种控制地图操作的控件。ToolbarControl上添加工具1)通过向导添加;2)通过代码添加;,五,ToolbarControl控件,主要接口:IToolbarControl,IToolbarControlDefaultIToolbarControlEventsToolbarControl上可以驻留三类命令:1)实现了Icommand的单击命令;2)实现了ICommand和ITool的
14、命令工具;3)实现了ICommand和IToolControl接口的工具控件,用户界面组件;,六,TOCControl控件,是一个集成图层控制操作的控件,一般是通过与其他几个地图显示控件相互关联一起工作。SetBuddyControl(object obj)TOCControl通过上述函数来关联其他控件。,string strToolID = ;strToolID = esriControlTools.ControlsMapZoomInTool; this.axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandSty
15、leIconOnly);strToolID = esriControlTools.ControlsMapZoomOutTool;axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);strToolID = esriControlTools.ControlsMapZoomInFixedCommand;axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriC
16、ommandStyleIconOnly);strToolID = esriControlTools.ControlsMapZoomOutFixedCommand;axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);strToolID = esriControlTools.ControlsMapPanTool;this.axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandS
17、tyles.esriCommandStyleIconOnly);strToolID = esriControlTools.ControlsMapFullExtentCommand;axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);strToolID = esriControlTools.ControlsMapZoomToLastExtentBackCommand;axToolbarControl1.AddItem(strToolID, -1, -1
18、, false, 0, esriCommandStyles.esriCommandStyleIconOnly);strToolID = esriControlTools.ControlsMapZoomToLastExtentForwardCommand; axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);,六,TOCControl控件,2.2.7控件之间的关联1)通过向导关联2)通过代码关联,第二节,ArcGIS Engine的组件,七,控件之间的
19、关联,示例1:1)通过向导关联,七,控件之间的关联,示例2:2)通过代码关联SetBuddyControl(Object 被关联控件);,第三节 GIS基本功能的设计开发,2.3.1图层的加载 在ArcEngine中需要使用MapControl来显示地理数据,用TOCControl进行图层操作。 MapControl控件中可以添加各种常用数据格式,如:SHP、mdb、CAD数据、Coverage数据、TIN数据等。,Shapefile数据是一种比较常用的,而且是容易获得(从其他格式的数据转换而来)的文件数据格式。 Shapefile采用早期的dBase数据的管理模式,即以文件夹作为数据库,文件
20、夹下的文件组成了数据库中的表,对于Shapefile文件来说就是图层。 一个Shapefile图层至少需要三个文件:*.SHP,*.SHX,*.DBF,它们分别用于存储空间数据、空间索引信息和属性数据。,1 加载图层,使用属性向MapControl中添加图层 在窗体上添加MapControl控件成功后,在控件上点击右击查看其属性框。打开属性对话框的”Map”选项卡,点击 按钮可以任意加载几个图层。,1 加载图层,使用程序动态地添加图层图层的常规加载方法首先向工程里添加如下引用:ESRI.ArcGIS.DataSourcesFile;ESRI.ArcGIS.GeoDataBase;ESRI.Ar
21、cGIS.Carto;,1 加载图层,打开图层的常用步骤:1.创建一个类工厂2.使用类工厂创建一个要使用的工作区3.使用工作区打开并得到图层的dataset4.把dataset装入到新建的图层实例5.把图层加载到MapControl控件,1 加载图层,涉及的类和接口,相关类说明WorkSpace类WorkSpace类是一个包含空间数据集和非空间数据集的数据容器。根据数据集的物理存储形式可以分为三种类型:1) 基于文件形式的FileSystemWorkspace2) 基于本地数据库文件形式的LocalDatabaseWorkspace3) 基于远程数据库管理系统(RDBMS)并通过ArcSDE访
22、问的RemoteDatabaseWorkspace,1 加载图层,WorkSpaceFactory类WorkSpaceFactory是工作空间分配者,用户进行相应的属性设置并通过它来连接各种工作空间。从该类中派生出了很多其他的类,如用于连接本地shp格式数据的ShapeFileWorkspaceFactory,以及用于连接远程SDE数据的SdeWorkspaceFactory还有:RasterWorkspaceFactoryAccessWorkspaceFactoryCadWorkspaceFactoryArcinfoWorkspaceFactoryTinWorkspaceFactory等。,
23、涉及的类和接口,1 加载图层,IWorkspaceFactory接口 该接口主要用于打开和创建工作空间,并提供Workspace的相关信息。该接口共提供了1种属性和11种方法。下面介绍其中两种方法。,涉及的类和接口,1 加载图层,Open方法该方法通过连接属性打开工作空间,其形式为:IWorkspace Open(IPropertySet propSet, int hWnd ); 参数: propSet连接属性,IPropertySet对象。hWnd整型变量,一般为0。,涉及的类和接口,1 加载图层,OpenFromFile方法通过文件路径和名称打开指定的本地工作空间,其形式为:IWorksp
24、ace OpenFromFile (string fileName,int hWnd ); 参数:fileName表示所要打开工作空间的路径文件名称。hWnd整型变量,一般为0。,涉及的类和接口,1 加载图层,IPropertySet接口该接口提供了1种属性和7种方法来管理连接属性。常见属性和方法有: SetProperty方法该方法用于设置指定的连接属性值。 GetProperty方法返回指定连接属性值。,涉及的类和接口,1 加载图层,IFeatureWorkspace:提供创建和打开各种数据集等有关的功能。OpenFeatureClass:打开一个要素类,就是存在于FeatureWorks
25、pace里面的一个FeatureClass,涉及的类和接口,1 加载图层,AddLayer:地图空间上添加指定图层。用法:AddLayer (pLayer )pLayer:是一个图层对象AddLayerFromFile:将图层文件加载到地图控件上指定的位置。这里的位置是各图层在Mapcontrol上的Index。用法: MapControl1.AddLayerFromFile (C:TempmyLayer.lyr“,2 );“C:TempmyLayer.lyr“:图层文件路径名称;2:是在MapControl上的图层的显示指数;,涉及的类和接口,1 加载图层,IWorkspaceFactory
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地理信息系统 基本功能 开发 技术 课件

链接地址:https://www.31ppt.com/p-1486914.html