230 likes | 361 Views
基于 AO 的二次开发 主讲:秦昆 博士 Email:qqqkkk@263.net 武汉大学遥感信息工程学院 二零零四年十二月. 第一章 组件式 GIS 开发. 1.1 组件式 GIS 简介 1.1.1 简介 在 GIS 软件产品中 , 有两类产品尤其引人注目 : ( 1 )一种是基于 ActiveX(OLE) 的组件式 GIS 技术; ( 2 )另一种是基于 Internet/Intranet 网络的 GIS 技术。 其中基于 ActiveX(OLE) 的组件式 GIS 开发工具软件将成为开发人员的首选平台。.
E N D
基于AO的二次开发 • 主讲:秦昆 博士 • Email:qqqkkk@263.net • 武汉大学遥感信息工程学院 • 二零零四年十二月
第一章组件式GIS开发 1.1 组件式GIS简介 1.1.1 简介 在GIS软件产品中,有两类产品尤其引人注目: (1)一种是基于ActiveX(OLE)的组件式GIS技术; (2)另一种是基于Internet/Intranet网络的GIS技术。 其中基于ActiveX(OLE)的组件式GIS开发工具软件将成为开发人员的首选平台。
第一章组件式GIS开发 什么是组件式GIS? 组件式GIS,又称ComGIS(COM是Component Object Model的简写),是未来GIS系统发展的重要趋势。组件式GIS是面向对象技术和组件技术相结合的应用型GIS,其基础是组件对象模型。 利用组件技术开发应用GIS的基本思想是: 把GIS的各大功能模块划分为若干个控件,每个控件完成不同的功能,控件之间、控件与非控件之间可以方便地通过可视化软件工具集成起来,将这些控件集成在一起, 就像搭积木一样构造软件系统,形成最终的GIS应用软件。
第一章组件式GIS开发 1.1.2、ActiveX(OLE)技术简介 传统软件开发模式开发出的应用系统,往往缺乏结构性,其资源使用的效率低下,并且难以与其它的应用程序实现真正的互用,系统的可维护性在很大程度上取决于开发人员的经验和能力。 将若干部件集成在一起,像搭积木一样构造软件系统,是计算机软件行业长期以来一直希望的事情。这种方法不仅节约时间和资金,提高工作效率,更重要的是可以生产更统一、可靠的应用程序。 基于组件式的新型软件开发技术,为应用系统的开发提供了新的思路,开发人员首先实现可靠的、小的对象模块(部件),或是直接从其它软件开发商获得需要的功能部件,然后利用这些功能部件装配成更复杂的系统,通过控制各个小部件的可靠性和可维护性,实现对整个应用系统的可靠性及维护性的控制。
第一章组件式GIS开发 目前,被计算机行业广泛接受的Microsoft的构件软件技术几乎已成为一种工业标准。 从它的OLE1.0(对象的链接与嵌入),再发展到今天的ActiveX(OCX)控件技术,已相当成熟。目前包括微软在内的各软件厂商提供的ActiveX(OCX)控件已达数万个。 各大GIS厂商顺应技术新潮流,相继推出了基于ActiveX(OLE)技术的组件式GIS软件,组件式GIS软件为开发人员提供了一个快速、易用、功能强大的地图化组件。用户可以在工业标准的可视化开发环境(如VB、VC、Delphi、Power Builder,Visual FoxPro等)中,只需在设计阶段将GIS组件嵌入到用户的应用程序中,就可以实现地图制图和GIS功能,而且用户的应用程序可以独立编译为*.exe文件。
第一章组件式GIS开发 组件式GIS的解决方案如图2所示。
第一章组件式GIS开发 1.2 组件式GIS的特点 1、高效无缝的系统集成 ComGIS与专业应用组件和商业组件的无缝集成
第一章组件式GIS开发 2、无须专门的GIS开发语言 只要符合组件模型开发标准的语言均可使用。如VC(Visual C++),VB(Visual Basic),Visual FoxPro,Borland C++,Delphi,Power Builder等。 3、大众化GIS 因GIS组件与其它商业化组件一样,遵循同样的组件对象模型标准,非GIS专业人员同样可以方便使用。 4、成本低。 组件的重用率极高。同一个组件可以在不同的软件中重复使用。
第一章组件式GIS开发 1.3 常用组件式GIS软件简介 组件式GIS的代表作首推MapObjects及MapX等,尤其是现在的ArcObjects(AO)。其中Map Objects和ArcObjects(AO)由全球最大的GIS厂商ESRI(美国环境研究所)推出;MapX由著名的桌面GIS厂商美国MapInfo公司推出。另外还有加拿大阿波罗科技集团的TITAN,武汉测绘科技大学研制的GeoStar部件开发平台GeoMap等。 这些组件均能提供如下功能: (1)调入和显示矢量地图数据; (2)地图窗口的管理,如图形的放大、缩小和漫游等; (3)显示不同的专题地图; (3)图层控制; (4)属性数据绑定; (待续)
第一章组件式GIS开发 (5)图素和属性数据库记录的相互查询; (6)地图要素的编辑和管理; (7)地图数据的屏幕测量。 等等。
第一章组件式GIS开发 1.3.1 MapObjects 1、简介 MapObjects (简称MO)是一组专供应用开发人员使用的制图与GIS应用组件。它由一个称为Map的ActiveX控件(OCX)和近50个可编程OLE对象组成。开发人员可在喜欢的开发环境中利用MapObjects开发出资源开销小且GIS功能强大的应用系统。 MapObjects还允许开发人员在现有的应用系统中添加GIS功能,并且能与其他图形、多媒体、数据库开发技术无缝集成,很好地解决了GIS和MIS综合应用的问题。
第一章组件式GIS开发 2、MapObjects的体系结构 MapObjects的可编程对象可以划分为六类: (1)地理匹配对象; (2)数据访问对象; (3)地图显示对象; (4)几何图形对象; (5)投影对象; (6)实用对象。
第一章组件式GIS开发 3、MapObjects的基本功能 (1)显示、浏览(放大、缩小、漫游)具有多个图层的地图; (2)显示、生成、选择、识别图形要素(如点、线、圆、多边形等); (3)显示、编辑地图要素的属性数据、标注、说明、字符; (4)按照范围、SQL描述、要素属性值查询要素; (5)绘制专题图、点密度图和饼状柱状图表; (6)显示多种格式的空间数据(矢量、栅格等); (7)动态地图数据的显示、查询和分析; (8)转换地图数据的坐标系统; (9)输出地理匹配的地理位置; (10)基本统计、空间分析算子(Buffer、Union、Intersect);
第一章组件式GIS开发 (11)支持动态投影。 总之,MapObjects在投影转换、地址匹配、数据访问、地图查询、显示以及制图输出等方面都有比较强大的GIS功能,实践证明它能从不同的层次、全方位地满足数据出版、应用开发、商业咨询等用户的需求。
第一章组件式GIS开发 1.3.2 GeoMedia GeoMedia是美国InterGraph公司倾力推出的代表GIS发展方向的新—代地理信息系统软件。 特点: 全新的多源数据无缝集成设计思想和先进的数据库管理方式,使得GeoMedia在发展OPENGIS方向上,走在了全球GIS软件产品的前沿。 另外,GeoMedia是采用组件式开发的GIS,是成熟的组件式GIS平台,同时也是可在浏览器端作专业分析的真正WEBGIS。
第一章组件式GIS开发 1.3.3 GeoMap GeoMap的设计利用了OLE/ActiveX技术的自动化技术及空间技术,它提供了一个可视化的控件和一组自动化对象。作为自动化服务器(Automation Servers),开发者利用自动化控制器(Automation Controller),如Visual Basic,Visual C++,Power Builder和Visual FoxPro等,编写代码操纵自动化服务器上提供的属性、方法,为自动化服务器的事件添加事件处理例程,完成部件到应用软件的装配过程,生成适应用户要求的系统。
第一章组件式GIS开发 1.3.4 TITAN(泰坦) TITAN提供一组TITAN ActiveX控件,它使应用程序员可以在标准的程序设计环境下,如Visual Basic,Visual C++,Power Builder、Visual FoxPro和Delphi等,将TITAN GIS的强大功能嵌入到应用程序中,开发嵌入式GIS应用系统。
第一章组件式GIS开发 1.3.5 MapX 美国MapInfo公司是世界著名的GIS软件供应商之一。其代表产品MapInfo Professional, MapInfo MapX, MapInfo ProServer, MapInfo SpatialWare等。 MapX是MapInfo公司1996年10月开始推出的基于ActiveX技术可编程的控件MapInfo MapX,现在最新版为MapX4.5。 MapX是一个基于ActiveX(OCX)技术的可编程控件。它使用与MapInfo Professional一致的地图数据格式,并实现了大多数的MapInfo Professional的功能。它提供了四十多个父类为Microsoft基础类(MFC)的OLE对象,应用程序员可以使用任何支持ActiveX的程序开发环境,如VisualC++、VisualBasic、Delphi、Power-Builder等嵌入MapX控件开发GIS应用程序。
第一章组件式GIS开发 1.3.6 ArcObjects ArcInfo8.3是ESRI推出的组件式GIS软件,对OpenGIS提供了广泛的支持。ArcInfo把GIS的基本功能都封装在ArcObject的组件对象库中,这些库文件定义了一些接口,包括组件对象、方法、事件、枚举,开发者可以通过接口来实现对对象的操作机制。 例如ArcMap和ArcCatalog是ArcInfo开发者利用高级语言调用ArcObject的接口来实现ArcObject基本功能的应用程序。开发人员无论应用何种开发环境,只要在设计时把引入的对象类声明为对象变量即可达到这一目的。
第一章组件式GIS开发 ODE (Open Development Environment)是在ArcInfo组件技术的基础上提供给用户的一种新的开发方式。开发人员可在VB,VC,Delphi等开发环境中,通过ActiveX控制与ArcInfo打交道。它为开发者提供的是一组可编程的对象,包括可视的用户化控件。开发人员在开发时采用VB,C+,VC,Delphi或类似的高级开发语言,引用组件对象进行编程,创建动态连接库、ActiveX控件(OCX)或可执行文件(EXE),从而开发出符合用户要求的界面及相关功能的软件系统。
第一章组件式GIS开发 1.4 组件式GIS的设计与开发方法 组件(控件)是更高级的软件模块,又具有对象的性质。其开发设计方法需利用OOA-OOD-OOP的方法(OOA: Object Oriented Analysis,面向对象的分析;OOD:Object Oriented Design,面向对象的设计;OOP:Object Oriented Programming,面向对象的程序设计)。 高级表现在组件是进行了封装的软件功能模块,完全面向对象。因此还需考虑以下问题: (1)强调独立性。尽量做到强内聚,弱耦合。 (2)纯设计用的模块与将要随系统发布的功能模块分开,如符号编辑器与空间分析模块分开。 (3)相同显示窗口的模块尽可能设计在一个控件里。 (4)处理相同数据文件的模块尽可能设计在一个控件里。 (待续)
第一章组件式GIS开发 (5)剔除空间分析模块中不必要的内容。 (6)应区分GIS应用中适合组件开发的内容和无须使用组件开发的内容。如数据采集、数据转换、符号编辑可用独立运行程序方式或DDL方式提供,不必用组件设计。
End! Thanks!