当前位置:首页 > 地下管线管理信息系统 - 江苏大学-计算机专业毕业论文
江苏大学毕业论文
ComGIS是一种全新的GIS概念,在同MIS耦合、Internet应用、降低开发成本和使用复杂性等方面,具有明显的优势。ComGIS改变了GIS原来过于专业化的开发方式,可以使更多的开发人员掌握GIS开发工具,从而使其成为一个大众化的应用领域[35~37]。尽管ComGIS软件提供的功能还不能完全满足专业应用的需要,但是随着技术的发展,ComGIS最终将取代传统的GIS。
GIS的发展经历了几个阶段,组件式GIS是目前较流行的GIS系统开发方法。组件式GIS符合当前软件技术的发展潮流,它使得开发成本降低,和MIS系统或者OA系统可以无缝集成,无需别的二次开发语言,可视化的组件还支持RAD,大大提高了应用系统的开发速度。组件式GIS本身划分为多个组件,分别完成不同的功能,用户可以根据自己的需要选择组件,大大降低了使用成本。 2.4.2 组件式GIS的实现技术
Microsoft给出的COM定义是:面向对象的编程模型,它定义了对象在一个进程内或进程间如何交互,在COM中,客户应用程序可以通过对象提供的接口来对其进行访问[28,38]。
COM是形成更高级软件服务基础的底层框架,它为不同软件厂商提供的二进制软件构件以一种良好的方式进行连接和通信,提供了以下机制:
● 定义一个构件交互操作的二进制标准并与编程语言独立 ● 多个平台可用(Microsoft windows、Apple Macintosh、UNIX) ● 提供基于构件的应用程序和系统的稳健升级 ● 具有可扩展性
● 构件之间的通信,包括跨进程和网络 ● 构件之间共享内存管理 ● 错误和状态报告 ● 动态装入构件
● COM的二进制支持机制
COM不是一种面向对象语言,而是一种标准,它也没有指定应用程序如何组织,而把语言、结构和实现细节留给程序员自己完成[14]。COM只指定了对象模型及COM对象与其它对象交互的编程要求,这些对象可以在一个进程、其它进程或远程机器中。它们可以用其它语言编写,结构可以完全不同。
在COM中,应用程序与其它应用程序和系统进行交互是通过一个函数集(即接口)来实现的。对任何给定的平台,COM定义了一个在内存中管理虚拟函数表(vtable)的标准方法,以及提供通过vtable调用函数的标准方法。这样任何提供通过指针调用函数的语言都可以用来编写构件,而这些构件可以与其它用同样二
12
江苏大学毕业论文
进编写的构件进交互,双重指针允许vtable共享同一对象的多重实例[12]。在一个具有上百个对象实例的系统中,vtable共享可以极大地减少内存需求。
访问接口函数的实现是通过接口指针来完成的。COM定义了一个特别的接口(IUnknown)来实现一些基本功能,这个接口是其它对象的主接口。IUnknown有三个方法:QueryInterface、AddRef和Release。AddRef和Release是简单的参考计数方法,当另外构件对象正在使用该接口时,调用一个构件对象的AddRef方法,当不再使用时调用接口的Release方法。QueryInterface是允许用户动态地发现一个接口是否被一个构件对象所支持,同时它也是用户获取构件对象接口指针的机制。当应用程序需要使用构件对象的一些函数时,它调用该对象的QueryInterface,获得相应函数接口的指针。如果构件对象不支持该接口,则返回一个错误值。
迄今为止,COM/DCOM的最佳环境,仍然是Microsoft windows操作系统。Microsoft目前迫切需要COM、DCOM以及AciveX技术也能在其它的OS上使用。DCOM(分布式组件对象模型)扩充了 COM体系结构,为使用兼容COM的操作系统并通过网络连接的计算机在二进制级别上提供对象通信服务[12]。 2.4.3 两种比较流行的组件式GIS控件
目前国际上较为流行的有ERSI公司的Arc/Info的系列产品,Mapinfo公司的MapInfo系列产品,澳大利亚的GenMap以及Intergraph公司的GeoMedia、MGE等。随着地理学的发展和GIS的美好前景,许多颇有实力的软件公司纷纷推出自己的GIS平台,并相当程度地融入了本公司先导产品的特色。如 AutoDesk公司的 AutoDesk GIS系列产品,可以使熟悉 AutoDesk CAD的用户在熟悉的界面下学习GIS平台的操作。应当承认,以ARC/INFO,MAPINFO,INTERGRAPH GEOMEDIA等为代表的国外软件平台功能强大,开发较为方便。下面介绍两种目前比较流行的GIS控件:
1 Mapobjects
Mapobjects是GIS技术领头雁ESRI研究所开发的提供制图和空间分析功能的GIS控件。它建立在微软的对象联接和嵌入(ActiveX)基础之上的,是一组供应用开发人员使用的制图与GIS功能组件[17]。它有一个叫Map的ActiveX控件和 30多个可编程的ActiveX对象组成,它们可以应用于符合工业标准的Windows开发环境,可由 Visual Basic、Visual C++、Delphi、Access等编程语言直接调用,在应用程序中添加制图和GIS功能[18,39,40]。
Mapobjects中的对象组成可划分为五类:
(1)地理匹配对象(Address Matching Objects):包括标准的地址对象、地址匹配的结果对象、独立的地址或街道交又口或地址匹配的街道网络对象和自定义
13
江苏大学毕业论文
的地名表。
(2)数据访问对象(Data Access Objects): 包括数据库连接对象、字段对象和字段集对象、地理数据对象和地理数据集对象、记录集对象、统计对象、表对象和表头对象。
(3)地图显示对象(Map Display Objects):包括符号分级对象、点密度对象、地理事件对象、栅格图层对象、标注分级对象、图层集对象、矢量图层对象、图层集合对象、符号对象、文本符号对象、跟踪图层对象和值分级对象。
(4)几何图形对象(Geometric Objects):包括椭圆对象、线对象、部分多边形利象、点对象、多边形对象和矩形对象。
(5)实用对象(Utility Objects):包括特定的字符串集合对象。
MapObjects显示的基本单位是层(Layer),包括矢量图层、栅格数据图层(Image)、符号层(Symbol)和标注层(Label Render)。各图层的比例尺由图层的世界坐标来确定(高斯一克吕格投影)。通过控制显示区域的中心位置、鼠标确定的矩形大小、比例尺控制显示区域内容。
应用Mapobjects可以实现如下功能:
(1)显示具有多个地图层的地图,如道路、河流和边界图等 (2)放大、缩小和漫游整个地图。
(3)显示图形特征(Feature),如点、线、圆和多边形。 (4)显示标注字符。
(5)通过点击识别图上特征。
(6)选择沿线的特征和在矩形、区域、多边形和圆内的特征 (7)选择在己知特征附近规定的距离内的特征。 (8)使用SQL语句查询特征。 (9)对选择的特征进行基本的统计。
(10)查询和更新选择的特征的属性数据(shape格式)。
(11)用特定的方法对特征进行着色处理ClassBreakRender, DotDensityRender。
(12)用字段值的字符标注特征。 (13)显示多种格式的栅格图像文件。 (14)动态显示实时和时间系列的数据。 (15)输出地理匹配的地理位置。 2 MapInfo
MapInfo是一个全面的桌面地图化工具,用户可以进行复杂的地理分析,诸
14
江苏大学毕业论文
如重新分区、与远程数据的连接、把地图对象拖放到应用程序、无缝地图图层、创建强调自己数据特性的专题地图等[15,16]。桌面地图化可帮助用户整理信息,使数据中的大量成分显示在地图上。这样,用户可迅捷地在大量信息中查看其模式和关系,而不用不断地访问数据库。
作为一类特殊的地理信息系统平台软件, MapInfo有它自己的特色,其主要功能有:
● MapInfo可直接打开以DBF文件、分界 ASCII和Microsoft Excel转入的多种格式的图形文件,也可以在在MapInfo内创建数据文件。 ● 使用链接表访问Oracle、Sybase等远程数据库。
● 无缝地图图层,使用户象处理一个图层一样处理多个地图图层。 ● 专题地图用高度可视的效果分析数据。 ● 可从多个文件查询。
● 工作空间保存所有的设置和视图,使用户可从结束工作的地方开始。 ● 运用OLE可把地图窗口嵌入其他应用程序。 ● 有丰富的地图投影供用户选择。 ● 可方便地定制地图。
● MapInfo以表的形式组织信息,每个表由一组文件组成。每张表是个独立的图层,计算机以图层组织地图。
● MapInfo中的地图对象类型有区域、点对象、线对象(包括直线段、折线、圆孤)和文本对象。
● 内挂的开发语言MapBasic使用户可定制自己的界面。 2.4.4 MapObjects的特点
MapObjects包括如下特点: (1)支持 ARC/INFO层。
(2)支持ESRI的Shape文件格式, SDE(空间数据库引擎)图层(Layer)以及大量栅格图像格式,如 BMP、 TIFF等。
(3)支持通过微软ODBC规范进行的外部数据库访问。
(4)把数据作为多个图层在一张图中进行显示,图幅可以进行变化。 (5)特征表示使用数理方法如数值地图、分类、个体符号以及点值图等。 (6)文字注记和放置。
(7)用一个事件跟踪层来动态显示实时数据。 (8)用标准 SQL表达式进行特征选择和查询。
15
共分享92篇相关文档