嵌入式操作系统
基于组件GIS的应用系统开发技术 Application Programming Technologies Based on COM GIS
摘要:利用组件GIS技术和MapX组件来开发GIS应用系统是一种实用的地理信息系统开发技术。文中重点讨论了MapX组件及应用MapX进行应用系统开发的关键技术,最后给出一个应用该技术的系统实例。
关键字:地理信息系统(GIS);组件;MapX;应用系统开发
Abstract: Using COM GIS technology and MapX component to develop GIS application system is a practical development technology of geographical information system. This paper Emphasized the MapX component and the key technology of developing application system by using MapX component. At the last, offered an instance which using COM GIS technology.
Keywords: GIS;Component;MapX; Application system development
1 前言
在计算机技术和应用全面普及的时代,越来越多的工作依赖计算机应用系统的支持和帮助,其中大多数的应用系统都是以数据处理为核心,这些应用要求计算机管理的信息不限于各种属性数据,还要有空间信息。实际的空间信息,具有结构复杂、数据量大等特点,一般的图形管理系统、数据库系统都难以胜任,这就促使地理信息的管理成为一门单独的课题,直接导致地理信息系统的出现。地理信息系统(简称GIS)是由计算机硬件、软件、地理空间数据和管理人员共同组成的集合,以有效地获取、存储、更新、管理、分析和显示各种形式的与空间有关的信息。近年来,地理信息系统的应用和发展尤为引人注目。据悉,现实生活中的85%的信息与地理信息有关,从地理空间的角度来处理属性数据能得到意想不到的效果,例如可以提高属性数据处理的可视化程度;可以通过GIS的空间分析工具挖掘出属性数据间的内在规律等。GIS的应用已涉及到生活的方方面面,走入千家万户。
2 GIS应用系统开发技术
GIS应用的不断深入,导致GIS应用技术的不断发展,从目前的GIS应用系统的开发过程来看,主要存在下面三种GIS应用系统开发技术:
(1) 用专用编程工具对GIS功能平台软件进行二次开发,定制满足用户要求的应用系统。如使用MapBasic语言编写基于GIS软件MapInfo上的应用程序。一般为了操作的方便和功能的全面,采用集成化地图技术(Integrated Mapping)在一些编程软件(如Delphi)的应用程序窗口中通过OLE技术集成一个GIS地图窗口,完成应用系统要求的地理空间数据的操作功能。这种技术已趋于成熟,但其主要缺点是不能脱离GIS平台软件的支持,难以满足计算机系统网络化发展的要求。
(2) Internet技术应用于GIS开发的WebGIS技术。GIS通过WWW功能得以扩展,真正成为一种大众使用的工具。从WWW的任意一个节点,Internet用户可以浏览WebGIS站点中的空间数据、制作专题图,以及进行各种空间检索和空间分析,提高了GIS的产业化和大众化,其主要特点是信息共享和跨平台的特性,但因其遭遇网络应用瓶颈,理论和技术有待进一步完善。
(3) 利用组件技术来开发GIS应用系统。组件具有面向对象、语言无关等特性,把GIS的各
1
大功能模块划分成几个组件,每个组件完成不同的功能,用户可根据实际需要选择购买和安装所需的GIS组件。各个GIS组件之间,以及GIS组件和其它非GIS组件之间,可以方便地通过可视化开发工具集成起来,形成兼有属性数据处理和空间数据处理的应用系统。GIS组件产品在功能上丝毫不比传统的GIS软件逊色,而且可以象搭积木一样,方便地嵌入到通用的开发环境中实现GIS功能,具有适应性强,GIS功能强大,开发简捷,使用灵活等特点,被广泛应用于GIS应用系统开发中。
3 MapX组件
3.1 MapX简介
MapX是具有强大地图分析功能的组件GIS产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境如Delphi、PowerBuilder、Visual C++、Visual Basic等。编程人员在开发过程中可以选用自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。利用MapX,能够简单快速地在应用程序中嵌入GIS功能,增强应用系统的空间分析能力。MapX采用基于MapInfo Professional的相同的地图化技术,可以实现MapInfo Professional具有的绝大部分地图编辑和空间分析功能,MapX通过提供各种工具、属性和方法,使实现这些功能非常容易。
3.2 MapX组件的模型结构
MapX组件的基本组成单元是Object(单个对象)和Collection(集合)。其中集合包括对象,是多个对象的组合。每种对象和集合负责处理地图某一方面的功能。
图1 MapX组件的模型结构
由图1可以看出,位于顶层的是Map对象本身,其它均由Map对象继承。Layers、DataSets、Annotations是Map对象下面的三个重要的分支。其中Layer主要用于操作地图的图层,DataSet用于访问空间数据表,Annotation用于在地图上增加文本或者符号。
4 应用MapX开发的关键技术
4.1 地图数据绑定
数据捆绑是将不同来源的数据对应到地图层的过程,捆绑结果会产生一个Dataset对象,Dataset对象的集合组成Datasets Collection,它定义了Map对象的数据集属性。 你可以通过Datasets将不同来源的数据捆绑到地图上实现图文互动,或创建专题图,如下例SQL Server数据的捆绑及专题分析:procedure TMapForm.ODBC1Click(Sender: TObject);
var
param: ODBCQueryInfo ;
ds: Dataset; //定义数据集
Datafields: Fields; //定义数据域
begin
param.SqlQuery := 'select * from '社区''; //选择SQL Server数据库中的社区表
param.DataSource := 'MapHZ'; //ODBC 数据源名
param.ConnectString := 'ODBC;'; //定义ODBC连接
Datafields.Add('NAME','NAME', miAggregationAuto,miTypeNumeric); //添加数据域NAME
ds := Map1.Datasets.Add(miDataSetODBC, param, unassigned, unassigned, unassigned, '社区', Datafields, unassigned); //将SQL Server数据捆绑到Mapinfo的社区表
ds.Themes.Add(miThemeRanged, 'NAME', 'MyTheme'); //添加一个范围专题图
end;
4.2 读取属性值
有三种方法:
(1) 由Layer对象的KeyField属性来设立要读取属性值的字段名。接着,由Feature对象的KeyValue读取此行的属性值。
(2) 将图层加入到Datasets,由Datasets对象的Value(x,y)属性,通过设置行号,列号来获得属性值。
(3) 将图层加入到Datasets,之后由RowValues(ftr)获取整行的值。
4.3 操纵地图对象
可以简单地加载一个GeoSet文件,给Layers对象集合赋予具体的内容,随之在Map对象中就能看到地图显示。GeoSet文件类似MapInfo中的工作空间,MapX有Geoset文件的编辑器GeosetMangater.exe,用户可在编辑器中组合及设置图层,然后保存生成一个 *.gst 文件直接调入Map对象。也可以通过Layers对象的Add 或 Remove 方法添加或移走图层,如:
Map1.layers.Add(FileName); // 添加图层,FileName为文件全路径名
Map1.Layers.Remove(3); // 移走地图第三层
Layers对象由一组Layer对象组成,通过Layer对象的Features和Selection对象集合你可以操纵(添加和删除)和选择图层上的图形目标,如:
Map1.Layers.Item(1).AddFeature(Newobj); //将新建对象Newobj添加到图层一
4.4 原型示例系统
利用Delphi作为开发前端,嵌入MapX实现地图操作功能,SQL Server为数据库管理系统的销售客户定位的GIS应用部分的模块界面如图2所示。
5 结束语
本文介绍了GIS应用系统开发的主要方法,特别阐述了组件GIS技术的特点和应用。在实际的系统开发中,本着“适用的就是最好的”的道理,选择物美价廉的组件产品来实现GIS功能,已成为中小GIS应用系统的首选方案。
图2 小区客户快速定位示例
全部0条评论
快来发表一下你的评论吧 !