23
基基 AO 基基基基基 主主 主主 主主 Email:[email protected] 主主主主主主主主主主主主 主主主主主主主主

基于 AO 的二次开发 主讲:秦昆 博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

  • Upload
    karsen

  • View
    110

  • Download
    0

Embed Size (px)

DESCRIPTION

基于 AO 的二次开发 主讲:秦昆 博士 Email:[email protected] 武汉大学遥感信息工程学院 二零零四年十二月. 第一章 组件式 GIS 开发. 1.1 组件式 GIS 简介 1.1.1 简介 在 GIS 软件产品中 , 有两类产品尤其引人注目 : ( 1 )一种是基于 ActiveX(OLE) 的组件式 GIS 技术; ( 2 )另一种是基于 Internet/Intranet 网络的 GIS 技术。 其中基于 ActiveX(OLE) 的组件式 GIS 开发工具软件将成为开发人员的首选平台。. - PowerPoint PPT Presentation

Citation preview

Page 1: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

 

基于 AO 的二次开发

主讲:秦昆 博士

Email:[email protected]

武汉大学遥感信息工程学院

二零零四年十二月

Page 2: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发

1.1 组件式 GIS 简介

1.1.1 简介

在 GIS 软件产品中 , 有两类产品尤其引人注目 :

( 1 )一种是基于 ActiveX(OLE) 的组件式 GIS 技术;

( 2 )另一种是基于 Internet/Intranet 网络的 GIS 技术。

其中基于 ActiveX(OLE) 的组件式 GIS 开发工具软件将成为开发人员的首选平台。

Page 3: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发

什么是组件式 GIS ?

组件式 GIS ,又称 ComGIS(COM 是 Component Object Model的简写 ) ,是未来 GIS 系统发展的重要趋势。组件式 GIS 是面向对象技术和组件技术相结合的应用型 GIS ,其基础是组件对象模型。

利用组件技术开发应用 GIS 的基本思想是:

把 GIS 的各大功能模块划分为若干个控件,每个控件完成不同的功能,控件之间、控件与非控件之间可以方便地通过可视化软件工具集成起来,将这些控件集成在一起 , 就像搭积木一样构造软件系统,形成最终的 GIS 应用软件。

Page 4: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.1.2 、 ActiveX(OLE) 技术简介

传统软件开发模式开发出的应用系统 , 往往缺乏结构性 , 其资源使用的效率低下 , 并且难以与其它的应用程序实现真正的互用 , 系统的可维护性在很大程度上取决于开发人员的经验和能力。

将若干部件集成在一起 , 像搭积木一样构造软件系统 , 是计算机软件行业长期以来一直希望的事情。这种方法不仅节约时间和资金 ,提高工作效率 , 更重要的是可以生产更统一、可靠的应用程序。

基于组件式的新型软件开发技术 , 为应用系统的开发提供了新的思路 , 开发人员首先实现可靠的、小的对象模块 ( 部件 ), 或是直接从其它软件开发商获得需要的功能部件 , 然后利用这些功能部件装配成更复杂的系统 , 通过控制各个小部件的可靠性和可维护性 , 实现对整个应用系统的可靠性及维护性的控制。

Page 5: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 目前 , 被计算机行业广泛接受的Microsoft 的构件软件技术几乎已成为一种工业标准。

从它的 OLE1.0( 对象的链接与嵌入 ),再发展到今天的 ActiveX(OCX) 控件技术 ,已相当成熟。目前包括微软在内的各软件厂商提供的 ActiveX(OCX) 控件已达数万个。

各大 GIS厂商顺应技术新潮流 , 相继推出了基于 ActiveX(OLE)技术的组件式 GIS 软件 , 组件式 GIS 软件为开发人员提供了一个快速、易用、功能强大的地图化组件。用户可以在工业标准的可视化开发环境 (如VB、 VC、 Delphi 、 Power Builder,Visual FoxPro等 ) 中 ,只需在设计阶段将 GIS 组件嵌入到用户的应用程序中 ,就可以实现地图制图和 GIS 功能 ,而且用户的应用程序可以独立编译为 *.exe文件。

Page 6: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 组件式 GIS 的解决方案如图 2所示。

Page 7: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.2 组件式 GIS 的特点

1 、高效无缝的系统集成

ComGIS 与专业应用组件和商业组件的无缝集成

Page 8: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 2 、无须专门的 GIS 开发语言

只要符合组件模型开发标准的语言均可使用。如VC(Visual C++) ,VB(Visual Basic) , Visual FoxPro, Borland C++, Delphi ,Power Builder等。

3、大众化 GIS

因 GIS 组件与其它商业化组件一样,遵循同样的组件对象模型标准,非 GIS专业人员同样可以方便使用。

4、成本低。

组件的重用率极高。同一个组件可以在不同的软件中重复使用。

Page 9: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 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)属性数据绑定 ;(待续)

Page 10: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发

(5)图素和属性数据库记录的相互查询 ;

(6) 地图要素的编辑和管理 ;

(7)地图数据的屏幕测量。

等等。

Page 11: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.3.1 MapObjects

1 、简介

MapObjects ( 简称 MO) 是一组专供应用开发人员使用的制图与 GIS应用组件。它由一个称为 Map 的 ActiveX 控件 (OCX) 和近 50 个可编程 OLE 对象组成。开发人员可在喜欢的开发环境中利用 MapObjects 开发出资源开销小且 GIS 功能强大的应用系统。

MapObjects 还允许开发人员在现有的应用系统中添加 GIS 功能 ,并且能与其他图形、多媒体、数据库开发技术无缝集成 , 很好地解决了 GIS 和 MIS 综合应用的问题。

Page 12: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 2 、MapObjects的体系结构

MapObjects 的可编程对象可以划分为六类 :

(1) 地理匹配对象 ;

(2) 数据访问对象 ;

(3) 地图显示对象 ;

(4) 几何图形对象 ;

(5) 投影对象 ;

(6) 实用对象。

Page 13: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 3、MapObjects的基本功能

(1) 显示、浏览 ( 放大、缩小、漫游 ) 具有多个图层的地图 ;

(2) 显示、生成、选择、识别图形要素 ( 如点、线、圆、多边形等 );

(3) 显示、编辑地图要素的属性数据、标注、说明、字符 ;

(4) 按照范围、SQL描述、要素属性值查询要素 ;

(5) 绘制专题图、点密度图和饼状柱状图表 ;

(6) 显示多种格式的空间数据 ( 矢量、栅格等 );

(7) 动态地图数据的显示、查询和分析 ;

(8) 转换地图数据的坐标系统 ;

(9) 输出地理匹配的地理位置 ;

(10) 基本统计、空间分析算子 (Buffer 、 Union、 Intersect);

Page 14: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发

(11)支持动态投影。

总之 ,MapObjects在投影转换、地址匹配、数据访问、地图查询、显示以及制图输出等方面都有比较强大的 GIS功能 ,实践证明它能从不同的层次、全方位地满足数据出版、应用开发、商业咨询等用户的需求。

Page 15: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.3.2 GeoMedia

GeoMedia 是美国 InterGraph 公司倾力推出的代表 GIS 发展方向的新—代地理信息系统软件。

特点:

全新的多源数据无缝集成设计思想和先进的数据库管理方式,使得 GeoMedia 在发展 OPENGIS 方向上,走在了全球 GIS 软件产品的前 沿。

另外, GeoMedia 是采用组件式开发的 GIS ,是成熟的组件式 GIS 平台,同时也是可在浏览器端作专业分析的真正WEBGIS 。

Page 16: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.3.3 GeoMap

GeoMap 的设计利用了 OLE/ActiveX 技术的自动化技术及空间技术 , 它提供了一个可视化的控件和一组自动化对象。作为自动化服务器 (Automation Servers), 开发者利用自动化控制器 (Automation Controller), 如 Visual Basic,Visual C++,Power Builder 和 Visual FoxPro 等 , 编写代码操纵自动化服务器上提供的属性、方法 , 为自动化服务器的事件添加事件处理例程 , 完成部件到应用软件的装配过程 , 生成适应用户要求的系统。

Page 17: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发

1.3.4 TITAN(泰坦)

TITAN 提供一组 TITAN ActiveX 控件 , 它使应用程序员可以在标准的程序设计环境下 , 如 Visual Basic,Visual C++,Power Builder 、Visual FoxPro 和 Delphi 等 , 将TITAN GIS 的强大功能嵌入到应用程序中 , 开发嵌入式 GIS 应用系统。

Page 18: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 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 应用程序。

Page 19: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.3.6 ArcObjects

ArcInfo8.3 是 ESRI 推出的组件式 GIS 软件 , 对 OpenGIS 提供了广泛的支持。 ArcInfo 把 GIS 的基本功能都封装在 ArcObject 的组件对象库中 , 这些库文件定义了一些接口 , 包括组件对象、方法、事件、枚举 , 开发者可以通过接口来实现对对象的操作机制。

例如 ArcMap 和 ArcCatalog 是 ArcInfo 开发者利用高级语言调用ArcObject 的接口来实现 ArcObject 基本功能的应用程序。开发人员无论应用何种开发环境 , 只要在设计时把引入的对象类声明为对象变量即可达到这一目的。

Page 20: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 ODE (Open Development Environment) 是在 ArcInfo 组件技术的基础上提供给用户的一种新的开发方式。开发人员可在 VB,VC,Delphi 等开发环境中 , 通过 ActiveX 控制与 ArcInfo 打交道。它为开发者提供的是一组可编程的对象 , 包括可视的用户化控件。开发人员在开发时采用 VB,C+,VC , Delphi 或类似的高级开发语言 , 引用组件对象进行编程 , 创建动态连接库、 ActiveX 控件 (OCX) 或可执行文件 (EXE), 从而开发出符合用户要求的界面及相关功能的软件系统。

Page 21: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 1.4 组件式 GIS 的设计与开发方法

组件(控件)是更高级的软件模块,又具有对象的性质。其开发设计方法需利用 OOA-OOD-OOP 的方法( OOA: Object Oriented Analysis ,面向对象的分析; OOD : Object Oriented Design ,面向对象的设计; OOP : Object Oriented Programming ,面向对象的程序设计)。

高级表现在组件是进行了封装的软件功能模块,完全面向对象。因此还需考虑以下问题:

( 1 )强调独立性。尽量做到强内聚,弱耦合。

( 2 )纯设计用的模块与将要随系统发布的功能模块分开,如符号编辑器与空间分析模块分开。

( 3 )相同显示窗口的模块尽可能设计在一个控件里。( 4 )处理相同数据文件的模块尽可能设计在一个控件里。 ( 待续 )

Page 22: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

第一章 组件式 GIS 开发 ( 5 )剔除空间分析模块中不必要的内容。

( 6)应区分 GIS应用中适合组件开发的内容和无须使用组件开发的内容。如数据采集、数据转换、符号编辑可用独立运行程序方式或 DDL方式提供,不必用组件设计。

Page 23: 基于 AO 的二次开发 主讲:秦昆  博士 Email:qqqkkk@263 武汉大学遥感信息工程学院 二零零四年十二月

End!

Thanks!