




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GIS软件开发1主 讲: 王 小 东2022/5/182022/7/9课程阐明实际课时:22,实验课时:10授课过程教材对应章节课时分配1AO程序设计入门1、2章22COM类、接口及编程技巧3、4,5,6章23ArcGIS控件开发实例10、11章24OMD与ArcObjects编程资源9章25创建自定义工具11、12章26地图操作补充,12章27地图提示补充,13章28坐标系与投影补充29专题地图制作补充22022/7/9第一讲 AO程序设计入门1GIS开发方式 3Arcgis Engine类库概述2Arcgis软件开发平台 4建立开发环境开场运用AE 2022/7/9GIS软件类型GIS平台
2、软件提供全部的地理信息系统处置功能,完成数据处置、空间分析、信息查询、专题地图制造等功能如:ArcGIS,MapInfo Professional,MAPGISGIS运用软件针对不同的运用领域和行业,综合电子地图和信息管理系统的特点如:郑州市公交查询系统,XX市综合管线地理信息系统等2022/7/91 GIS开发方式1.1 独立开发方式1.2 宿主型开发方式1.3 GIS组件开发方式1.4 GIS组件产品及功能1.5 ActiveX控件的组成2022/7/91.1独立开发方式不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处置分析及结果输出,一切的算法都由开发者独立设计,然后选用某种
3、程序设计言语,如Visual C+、Delphi等,在一定的操作系统平台上编程实现。开发周期长,软件功能相对简单,对开发者要求高,用于购买软件的费用相对节省2022/7/91.2宿主型开发方式基于GIS平台软件,进展运用系统开发多数GIS平台软件都提供了可供用户进展二次开发的脚本言语,用户以原GIS软件为开发平台,利用这些脚本言语,开发出本人的针对不同运用领域的运用程序。如ArcView中的Avenue言语,ArcGIS中VBA,MapInfo Professional的MapBasic言语开发较为容易; 功能较弱所开发的系统不能脱离GIS平台;是解释执行的,运转效率低;用户界面受平台软件的限
4、制2022/7/91.3GIS组件开发方式建立在组件技术根底上的GIS功能组件,实现了地理信息系统的各种功能,这些组件都具备GIS的根本功能。开发人员可以基于通用软件开发工具,尤其是可视化开发工具,如:Visual C+、Visual Basic、 Visual C#、Power Builder等为开发平台,进展二次开发,实现GIS功能。大多数GIS软件厂商都提供商业化的GIS组件。如ESRI 公司的MapObjects、ArcGIS Engine、MapInfo公司的MapX等2022/7/9GIS开发方式的选择独立开发难度太大宿主型二次开发受GIS平台所提供的脚本言语的限制GIS组件开发方
5、式结合了GIS平台软件与可视化开发平台的组件开发方式的优点,是GIS运用开发主要方向。利用GIS组件实现对空间数据库的管理、分析功能,又可以利用其它可视化开发平台提供的丰富的、功能强大的编程组件和环境,不仅能大大提高运用系统的开发效率,而且运用可视化软件开发工具开发出来的运用程序具有更好的用户界面,更强大的数据库功能。可靠性好、易于移植、便于维护,学习周期较短,容易上手。2022/7/91.4GIS产品及其功能空间数据获取坐标转换图形编辑数据存储数据查询数据分析制图表示.可以想象要把这些一切的功能放在一个控件中几乎是不能够的,即使实现也会带来系统效率上的低下。普通可以以为GIS构件的设计主要遵
6、照运用领域的需求。例如ESRI的Arcobjects就是以空间数据访问、查询、制图为主要目的的GIS构件。2022/7/9GIS组件产品GIS组件的代表作MapObjects由全球最大的GIS厂商ESRI(美国环境系统研讨所)推出;ESRI(美国环境系统研讨所)在9.0之后推出ArcGIS Engine组件美国MapInfo公司推出的MapX。北京超图公司的SuperMap组件 2022/7/91.5ActiveX控件的组成PME模型 PME模型Property属性Method方法Event事件 桌面用的、基于COM的组件叫做ActiveX控件。一个ActiveX控件由它的一些成员组成:属性,
7、方法以及事件P:属性是用来描画和反映对象特征的参数,用来保管对象的数据M:方法是控件内部可调用的用以完成特定操作的过程或函数E:事件是VB预先定义的对象能识别的动作。2022/7/92022/7/9MapControl属性 MapControl涉及了20多个属性,内容包括地图控件的当前视图,图层,图层数,显示范围,地图单位等。例如: (1)ActiveView (2)Map (3)MapScale (4)Extent (5)FullExtent (6)Layer (7)LayerCount2022/7/9MapControl 方法 Mapcontrol提供了一整套完好的地图操作方法,经过这些方
8、法,开发人员可以完成对地图的多种操作和加工处置,例如改动地图的显示范围, Mapcontrol控件所提供的方法共有9大类22种,他们都是经过相应的方法处置函数实行其各自的功能。以下图是Mapcontrol的方法分类:2022/7/92022/7/9Mapcontrol 事件 Mapcontrol提供的事件共有6大类15个,它们既包括了鼠标、键盘的音讯,也包括图层重画等音讯。各类音讯分类的阐明如以下图:2022/7/92022/7/9音讯事件的详细功能2022/7/92Arcgis开发平台 2.1 ArcgisDesktop开发平台2.2 ArcGISEngine开发平台2.3 DeskTop和
9、Engine的开发平台比较2022/7/92.1 ArcgisDesktop开发平台 ArcGIS 系列桌面产品是一系列整合的GIS运用程序的总称,包括ArcInfo,ArcEditor和ArcView。通过协调一致地调用桌面运用和界面,可以实现从简单运用到完成复杂GIS功能的义务,包括制图、地理分析、数据编辑、数据管理、可视化和空间处置。 ArcGIS Desktop是可以满足各种类型用户的可伸缩的产品,用户可根据需求定制、配置本人的GIS应用系统,主要包括以下完好的GIS功能:2022/7/9(1)制图和三维3D可视化(2)矢量和栅格数据编辑(3)空间处置(4)在复杂的自信心模型和框架下进
10、展地理数据管理,包括数据管理与维护,拓扑、完好性规那么和丰富的GIS行为,地图和投影变换,空间处置工具和模型,元数据、目录和数据库管理(5)数据互操作才干可以运用多种文件,格式以及数据大小无限制(6)在事务方式下的数据更新、维护与共享(7)支持GIS互操作规范(8)Web效力,包括地图发布,数据发布和分发,编辑,空间处置2022/7/9Desktop提供的三种层次的开发方式1定制ArcGISDesktop2在本人的运用系统中嵌ArcGISControls3扩展ArcObjects,以动态库或控件方式供第三方运用2022/7/92.2 ArcGISEngine开发平台 ArcGIS Engine
11、是用于构建定制运用的一个完好的嵌入式GIS组件库,它可以为用户提供针对GIS处理方案的定制应用。利用ArcGISEngine,开发者可以将ArcGIS功能集成到一些运用软件中。 对于开发者来讲,它并不是一个最终的产品,而是一组被称作ArcObjects的软件开发包 ArcGIS Engine可以在Windows,UNIX和Linux桌面上运行,并支持一系列的运用开发平台,例.net,Java,com和C+。2022/7/9为什么运用ArcGIS Engine 许多用户要求有特定的轻量级的GIS运用:可以是独立的运用,或是将GIS功能嵌入到其他运用中,在这种开发中,用户需求的GIS功能比ArcV
12、iew弱,但仍需求在运用实现复杂的GIS逻辑ArcGISEngine为此提供了一个低本钱、轻量级的选择, 同时,选择ArcGIS Engine进展开发还有几个关键特征:2022/7/9(1)规范的GIS架构(2)高效运用(3)可视化开发控件(4)跨平台特性(5)支持多种开发言语(6)可扩展选项(7)丰富的开发资源2022/7/9ArcGIS Engine的功能ArcGIS Engine可以实现的功能:空间数据显示、查询检索、编辑和分析创建各种专题图和统计报表高级的制图和输出功能空间数据的管理和维护ArcGIS Engine的扩展选项:空间分析选项三维选项Geodatabase更新选项网络分析选
13、项2022/7/92.3 DeskTop和Engine的开发平台比较从三方面的比较: 类库比较 程序扩展比较 开发方式比较2022/7/9类库比较经过教材20页表2.1,可以发现:(1)Desktop提供了56个类库,而Engine提供21个类库,Engine包含的类库是Desktop提供类库的一个子集。(2)ArcGIS Engine提供的类库集中在界面和控件以及分析等方面(3)Engine提供的类库中几乎没有以“UI结尾的类库除了SystemUI。这意味着,在ArcGIS Engine开发环境中,没有多少界面组件可供运用,比如在ArcMap中用于阅读和选择数据的GxDialog,在ArcG
14、IS Engine中是无法运用的。2022/7/9程序扩展比较扩展模块DesktopEngine3D显示扩展3DAnalystGlobeCore空间分析扩展SpatialAnalystStreetMap扩展从下表可看出,两者可用程序扩展完全一样2022/7/9开发方式比较Desktop支持两种开发方式: (1)VBA定制开发方式 (2)独立运用开发方式ArcGIS Engine有一种开发方式: 开发独立运用程序或者作为GIS组件嵌入到其他运用系统中。2022/7/93Arcgis Engine类库概述ArcGIS Engine提供的类库集中包含一下几类:界面和控件类库3个:System,Sys
15、temUI,controls可视化显示5个:Carto,Display,Geometry,GolobeCore, SpatialAnalyst。数据访问5个:DataSourceFile,DataSourceGDB, GeoDatabase DataSourcesRaster,GeoDatabaseDistributed分析3个:3DAnalyst,GeoAnalyst,NetworkAnalyst共21个,AE类库的体系构造图如下:2022/7/92022/7/92022/7/9类库:(1)System库:System 库是ArcGIS 构造中最低级的对象库。该库包含了提示ArcGIS 中其
16、他对象库所运用的效力的组件,如AoInitialize、Filename、UID等。(2)SystemUI库:SystemUI 库主要定义了ArcGIS 系统中所运用的用户界面组件的类型,如SystemFont等。(3)Geometry库:Geometry 库包含了中心几何对象,如点、多边形、线及其几何类型和定义等,如Point、Polyline、Polygon、Envelope等。(4)Display 库:Display 库包含了支持向输出安装绘制符号体系的组件,如Color、Symbol等。(5)Server库:Server库包含了用于获取到ArcGIS Server 的衔接的对象。该衔接
17、经过本库中的对象进展管理。如SeverObject等。2022/7/9(6)Output库:Output 库包含了生成输出所必需的对象,通常是从地图或页面规划输出到打印机、绘图仪,或导出到文件中。如Paper,Printer,Export等。(7)Geodatabase库:Geodatabase 库包含了一切与数据访问相关的定义的类型,如WorkspaceFactory等。(8)GISClient库:GISClient 库包含了操作远程GIS 效力的对象。ArcIMS 或ArcGISServer 都可以提供这些效力。(9)DataSourcesFile库:DataSourcesFile 库包含
18、了适用于地理数据库运用程序接口APIs所支持的矢量数据格式的任务空间工厂和任务空间。如ShapefileWorkspacefactory。(10)DataSourcesGDB 库:DataSourcesGDB 库包含了适用于存储在RDBMS中的地理数据库所支持的矢量和栅格数据格式的任务空间工厂和任务空间,如AccessWorkspacefactory,SdeWorkspacefactory。(11)GeoDatabseDistributed 库:GeoDatabse Distributed 库包含了支持分布式地理数据库的检出/检入操作所必需的对象。2022/7/9(12)DataSources
19、OleDB库:DataSourcesOleDB 库提供了操作“基于对象衔接和嵌入数据库OLE_DB-based的数据源的任务空间。如TextFileWorspacefactory。(13)DataSourcesRaster库:DataSourcesRaster 库包含了适用于基于文件的栅格数据格式的任务空间工厂和任务空间(14)Carto 库:Carto 库包含了用于显示数据的对象。如FeatureRenderer、Layer、Map、PageLayout等。(15)Location 库:Location 库包含了与位置数据操作相关的对象。位置数据可以是途径事件,或者地理编码的位置。(16)N
20、etworkAnalysis 库:NetworkAnalysis 支持运用网络的创建和分析,如FlagDisplay等。(17)Controls 库:Controls 库包含了用于运用软件开发的控制器,包括经过控制器来运用的命令和工具。如Mapcontrol、ToolbarControl、TOCControl等。2022/7/9(18)GeoAnalyst库:GeoAnalyst 库包含了中心空间分析的操作,这些操作可以经过空间分析和3D 分析扩展模块来运用。如RasterAnalysis。(19)3Danalyst库:3Danalyst 库包含了用于进展数据3D 分析以及支持3D 数据显示的
21、对象。该库中有一控制器可供开发人员运用,并且操作该库中的对象需求一个3D 分析扩展授权。如3DProperties、3DSymbol等。(20)GlobeCore库:GlobeCore 库包含用于进展球体数据分析以及支持球体数据显示的对象。该库中有一控制器可供开发人员运用,并且操作该库中的对象需求一个3D 分析扩展授权。如GlobeLayer,GlobeCamara等(21)SpatialAnalyst库:SpatialAnalyst 库包含了用于进展栅格与矢量数据空间分析的对象。操作该库中的对象需求一个空间分析授权,如RasterDistanceOP,RasterHydrologyOP202
22、2/7/94建立开发环境开场运用AE4.1系统要求4.2安装VB6和AE4.3认识VBAE的开发环境2022/7/94.1系统要求硬件:Intel Pentuim 计算机 512M 以上内存软件: Windows 2000/XP ; Visual Basic 6和 AE控件2022/7/94.2安装VB6和AE(1)安装VB6.0(2)安装AE,配置正确的license文件2022/7/9STEP 2: 安装完成后,在光盘目录VB6-SP6B中找到SetupSP6.exe,将VB6 晋级到最新版本。SP6 是微软公司对其产品VB6 的第6次更新,修正了以前的一些问题2022/7/94.3开场在
23、VB中运用AE认识VB 6的集成开发环境在VB 6中加载ESRI MapControl控件添加控件及数据2022/7/9认识VB6的集成开发环境VB集成开发环境2022/7/9设置VB选项,明确变量类型在预备开场一个工程时,应该在确保VB的工程中运用到的变量的类型都是明确声明的,这样可以减少发生错误的能够性,这是一个很好的编程习惯。Option Explicit2022/7/9VB6中常用的控件库2022/7/9在VB6中加载AE控件STEP1:启动Visual Basic 6 ,在开场出现的导游中选择新建工程(规范 EXE) . 确定STEP2:在工具栏上点右键 (工具栏位于VB窗口的左边)
24、,在出现的右键菜单中点击部件命令. 2022/7/9拖放:在窗体上放置MapControl控件调整控件的大小及位置选中2022/7/9建立包含MapControl控件的缺省工程保管工程模板:将窗文件(.frm)及工程文件(.vbp)保管到C:Program FilesMicrosoft Visual StudioVB98TemplateProjectsMap 控件2022/7/9在VB环境中加载Mapcontrol的步骤第一步:首先透过“部件在form工具箱中添加MapControl控件,然后经过拖动双击map控件的方法,将控件添加到form窗体之上,并调整大小。2022/7/9选择将要显示在地图上的数据他可以经过 地图控件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶安全培训
- 血液制品管理条例培训
- 《善待家园》课件-1
- 语文趣味知识大赛
- 2025办公写字间租赁合同协议书下载
- 幼儿园大班教案讲故事
- 国防教育内容课程设计
- 劳务派遣与用工单位安全协议
- 工程项目总承包合同
- 基金公司 白皮书
- 2024年全国统一高考历史试卷(广东卷)含答案
- 高中数学 6.3.2 空间线面关系的判定教学设计 苏教版选择性必修第二册
- 欧派购货合同范本
- 沉井施工合同模板
- 2024版ODM合作合同协议书范本
- 2024年全国初中数学竞赛试题含答案
- 血管瘤的治疗课件
- 2023-2024学年上海市杨浦区八年级(下)期中英语试卷
- (高清版)DZT 0222-2006 地质灾害防治工程监理规范
- 数学趣味讲座:邀请数学领域专家进行趣味讲座激发学生对数学的兴趣
- 心脏瓣膜疾病一病一品
评论
0/150
提交评论