跨平台嵌入式地理信息系统的制作方法

文档序号:6459370阅读:239来源:国知局
专利名称:跨平台嵌入式地理信息系统的制作方法
技术领域
本发明属于信息处理技术领域,涉及一种地理信息系统,尤其涉及一种嵌入式地理信息 系统。
背景技术
由于GIS (地理信息系统)包含的信息量大,其处理对硬件要求高, 一直都是应用在工作 站和高档的PC机上。但是随着计算机科学技术的不断发展,嵌入式移动设备(车载终端、掌 上电脑(PDA)、智能手机等)的性能有了很大的提高。GIS技术的应用逐步进入了后PC阶段。
当前嵌入式GIS的应用主要在以下领域1)汽车导航应用市场。包括出租车、警车、运 钞车、救护车等特殊车辆的定位导航以及普通民用车的定位导航。有人以北京作了简单计算, 北京约有10万辆出租车,全部装上导航定位系统,以每台5000元计算就是5亿的市场,因 此全国的市场规模估计应该在100亿以上。2) PDA、手机GIS应用。在这一平台上可以开发 各种专业应用软件,如野外测量、数据采集、城市指南、旅游导游等应用。也有人估算过, 如果我国一亿手机用户一个月5元的地理信息服务, 一年将是60亿的市场。
当前,国内外最为流行的嵌入式GIS开发平台有Maplnfo公司的MapX Mobile、 ERIS公 司的ArcPad、超图公司的eSuperMap以及武汉大学的hMap等。这些产品都已经比较成熟、功 能强大且各具特色。
经过大量的实验和分析,上述技术方案还存在以下问题
1) 对跨平台几乎没有提供任何支持,主要都是针对某一操作系统和数据引擎丌发。
2) 产品的可扩展性不够。在系统设计时,缺少考虑用户今后扩展产品的需求。
3) 地理数据资源格式单一,不支持异构地理数据资源的集成。
4) GIS数据没有动态性。
5) 数据存储松散,数据管理混乱。
6) 数据操作的效率低。这些问题导致产品普遍具有一定的局限性。

发明内容
本发明所要解决的技术问题是提供一种跨平台嵌入式地理信息系统。 为解决上述技术问题,本发明采用如下技术方案一种跨平台嵌入式地理信息系统,该系统包括
应用程序层,用于执行地图的基本操作、査询各类地理信息、路径分析以及数据采集;

数据服务中间件层,连接所述应用程序层,包括工程管理模块、地理数据管理模块、显 示数据管理模块,该数据服务中间件层用于对应用程序层屏蔽底层的实现细节,通过地理数 据管理模块和显示数据管理模块向上层提供地理数据和显示数据的存取接口;及
数据引擎层,连接所述数据服务中间件层;及
平台相关模块层,连接所述数据引擎层,将与特定操作系统相关的所有操作集中在一起;

基础算法组件,连接所述数据引擎层,该基础算法组件包含所述地理信息系统所需要使 用的GIS算法及数据结构;及
地理资源文件层,连接所述数据引擎层及平台相关模块层,用于提供地理资源的信息;

操作系统层,连接所述地理资源文件层,该操作系统层包括若干嵌入式平台。 作为本发明的一种优选方案,所述系统还包括一类库,该类库分别定义应用程序层、数
据服务中间件层、数据引擎层、平台相关模块层、基础算法组件、地理资源文件层、操作系
统层的相关信息。
作为本发明的一种优选方案,所述数据服务中间件层包括工程管理模块、地理数据管理 模块、显示数据管理模块;所述地理数据管理模块、显示数据管理模块连接工程管理模块。 作为本发明的一种优选方案,所述应用程序层和数据服务中间件层的接口是类库中类以
及类的成员变量和成员函数。
作为本发明的一种优选方案,所述数据服务中间件层是整个类库对外的主要接口,应用
程序层通过该接口来使用整个类库。
作为本发明的一种优选方案,所述数据引擎层包括数据管理模块、执行引擎模块、网络
数据分析引擎模块、索引文件记录管理模块、缓冲管理模块、以及存储管理模块; 所述数据管理模块连接执行引擎模块、网络数据分析引擎模块; 所述执行引擎模块、网络数据分析引擎模块连接索引文件记录管理模块; 所述执行引擎模块、网络数据分析引擎模块、索引文件记录管理模块连接缓冲管理模块; 所述缓冲管理模块连接存储管理模块。
作为本发明的一种优选方案,所述数据引擎层采用标准0++进行编码,基于MobileM即嵌入式GIS文件格式;如果底层的文件为shapefile文件格式、tab文件格式,则将数据引擎层 替换为对应于相应文件格式的数据引擎。
作为本发明的一种优选方案,所述平台相关模块层和数据引擎层通过函数调用和数据结
构使用等来进行交互。
作为本发明的一种优选方案,所述地理数据管理模块为一数据仓库,该数据仓库包括若 干数据库,各数据库包括若干实体集合,各实体集合包括若干实体。
作为本发明的一种优选方案,所述实体集合包括简单实体集合、复合实体集合、复杂实
体集合。
本发明的有益效果在于本发明跨平台嵌入式地理信息系统通过使用不同的数据引擎层, 可4同时集成多种异构的嵌入式GIS数据资源;同时,通过替换不同的平台相关模块层,本 发明跨平台嵌入式地理信息系统可以不经修改直接运行在多种嵌入式操作系统上。


图1为本发明跨平台嵌入式地理信息系统的组成示意图。
图2为本发明跨平台嵌入式地理信息系统的组成示意图。
图3为数据服务中间件层各模块间的组成示意图。
图4为地理数据管理模块的组成示意图。
图5为地理数据管理模块与视图的连接示意图。
图6为空间数据引擎层的组成示意图。
具体实施例方式
下面结合附图详细说明本发明的优选实施例。
请参阅图l,本发明揭示了一种跨平台嵌入式地理信息系统,包括应用程序层l、数据服 务中间件层2、数据引擎层3、平台相关模块层4、基础算法组件5、地理资源文件层6、操作 系统层7。所述系统还包括一类库(跨平台嵌入式GIS基础类库),该类库分别定义应用程序 层l、数据服务中间件层2、数据引擎层3、平台相关模块层4、基础算法组件5、地理资源文 件层6、操作系统层7的相关信息。
应用程序层l用于执行地图的基本操作(放大、縮小、平移)、査询各类地理信息、路径分析以及数据采集。该层面对用户的界面和逻辑控制,不应包含任何核心的GIS算法和数据 操作算法。
数据服务中间件层2连接所述应用程序层,如图3所示,数据服务中间件层2包括工程 管理模块21、地理数据管理模块22、显示数据管理模块23,所述地理数据管理模块22、显 示数据管理模块23连接工程管理模块21。该数据服务中间件层2用于对应用程序层屏蔽底层 的实现细节,通过地理数据管理模块22和显示数据管理模块23向上层提供地理数据和显示 数据的存取接口。所述应用程序层1和数据服务中间件层2的接口是类库中类以及类的成员 变量和成员函数。所述数据服务中间件层2是整个类库对外的主要接口,应用程序层1通过 该接口来使用整个类库。
数据引擎层3连接所述数据服务中间件层2。请参阅图6,数据引擎层3包括数据管理模 块31、执行引擎模块32、网络数据分析引擎模块33、索引文件记录管理模块34、缓冲管理 模块35、以及存储管理模块36。所述数据管理模块31连接执行引擎模块32、网络数据分析 引擎模块33;所述执行引擎模块32、网络数据分析引擎模块33连接索引文件记录管理模块 34;所述执行引擎模块32、网络数据分析引擎模块33、索引文件记录管理模块34连接缓冲 管理模块35;所述缓冲管理模块35连接存储管理模块36。所述数据引擎层3采用标准C++ 进行编码,基于MobileM邻嵌入式GIS文件格式;如果底层的文件为shapefile文件格式、 tab文件格式,则将数据引擎层3替换为对应于相应文件格式的数据引擎。
如图4所示,所述地理数据管理模块31为一数据仓库,该数据仓库包括若干数据库,各 数据库包括若干实体集合,各实体集合包括若干实体。所述实体集合包括简单实体集合、复 合实体集合、复杂实体集合。
底层地理数据的显示用视图来控制。视图负责管理其中所有的图层,同时还存储了在一 个视图里所有图层共同的显示特征,比如地图的中心点、比例尺、旋转角度、地图显示选项 等。图层存储并且管理每个实体集合所对应的显示信息。其作用是控制一个实体集合的显示 风格,比如可显示比例、显示方式、可接收操作等等。实体集加上其特有的显示属性即是 图层。实体集合、数据库、图层和视图之间的关系如图5所示。
平台相关模块层4连接所述数据引擎层3,将与特定操作系统相关的所有操作集中在一起。 平台相关模块层4和数据引擎层3通过函数调用和数据结构使用等来进行交互。
基础算法组件5连接所述数据引擎层3,该基础算法组件5包含所述地理信息系统所需要 使用的GIS算法及数据结构。
地理资源文件层6连接所述数据引擎层3及平台相关模块层4,用于提供地理资源的信息。操作系统层7连接所述地理资源文件层5,该操作系统层包括若干嵌入式平台;如Windows、 嵌入式Linux。
通过使用不同的数据引擎层,该系统可以同时集成多种异构的嵌入式GIS数据资源;同 时,通过替换不同的平台相关模块层,该系统可以不经修改直接运行在多种嵌入式操作系统上。
跨平台嵌入式GIS基础类库在GIS应用中的角色如图2所示。
从图中可以看出,整个系统可以分为后台运行在网格平台上的服务器程序和前台运行在 嵌入式移动终端上的客户端程序。嵌入式移动终端通过运行在其上的嵌入式GIS应用程序向 后台的服务接口发出服务请求,通过网格中间件的调度以及高性能计算机群的计算,结果将 返回终端应用程序。终端和后台之间的交互信息包括实时路况的请求和响应、地理数据的 请求和响应、各类兴趣点动态状况的请求和响应等。顾名思义,本嵌入式GIS基础类库以类 库的形式进行发布,位于嵌入式GIS应用程序和各种GIS资源文件之间,起到承上启下的作 用对于应用程序,通过使用、继承、重载类库中相关的类来实现所需的功能。类库为上层 应用程序屏蔽复杂的实现细节以及底层的文件系统,使上层应用程序开发人员能够在短时间 内开发出常用的GIS功能。同时,通过继承和重载,还可以进行功能的定制和更改;另一方 面,项目使用的GIS资源文件有好多种,例如Mapinfo公司的tab、 ESRI公司的shapefile 等。此外,使用的终端种类也有好几种,包括手机、PDA、车载终端,运行的操作系统有Windows CE、 Smartphone、嵌入式Linux。如果根据不同的文件格式,不同的嵌入式平台开发不同的应 用系统,成本将是巨大的并且其中包含了大量的重复劳动。本类库设计的目标之一就是支持 一次开发,跨平台使用。具有集成多文件格式,多操作系统的功能。
本系统中跨平台嵌入式GIS基础类库的设计原理如下
(1) 分层设计。类库进一步被分为三层,底层细节进一步封装后以便今后跨平台替换。 上层数据服务中间件向应用程序提供接口,应该清晰、明确、易于使用。中间数据引擎一层 操作文件、实现核心算法。针对不同的文件格式应替换相应的数据引擎。底层平台相关模块 层,集成平台相关操作,根据不同的操作系统也应进行相应替换。
(2) 模块化设计。既然类库作为嵌入式GIS的开发平台,所提供的服务就是在其上的二 次开发。模块化设计对今后的维护、使用和定制意义重大。在分层的基础上,作者又将每一 层划为一个个模块。例如,数据服务中间件层被进一步划分为工程管理模块、地理数据管理模块以及显示数据管理模块。这些模块还将进一步被分割成数据仓库、数据库、实体、地理 属性、视图、图层、显示属性等一系列对象。
(3) 平台无关性设计。这里所指的跨平台包括支持多种操作系统、集成多种数据源、 不依赖于任何数据引擎三个方面。作者采用的手段为第一、类库所有部分采用标准〔++进行 编码,不依赖于任何非标准函数或三方类库(MFC等)。第二、采用分层设计,通过替换最少 代码以换得最大的可重用性。第三、定义新的嵌入式GIS资源文件格式并在其上实现平台无 关的数据引擎。第四、添加平台相关模块层,集中管理极少的平台相关模块。
(4) 可扩展性设计。显然,任何类库不可能包含用户需要的所有功能,类库设计的初衷 也不是试图达到这个目标。在设计中,为了支持用户的二次开发,尽可能地预留了许多接口。 用户可以通过继承和重载来使用并定制相关的类,以满足不同应用的不同需求。
(5) 动态性设计。静态的GIS系统已经不能满足人们日益增长的需求,无线网络的发展 也使得终端、后台互动成为了可能。本设计通过使用异构多数据源集成技术,使得网络SOCKET 也能成为数据来源之一。比如,在移动终端上不需要存储任何的地图资源,在浏览时根据区 域的范围以及比例尺的大小动态地向后台服务器提出数据请求。另一方面,移动终端还可以 动态地请求相关的属性信息,比如,某停车场的空余车位数量、道路的拥塞情况等等。所 有的这一切都是在上层用户不知情的情况下进行的,也就是说,通过分层屏蔽,上层用户不 知道所使用的数据是来自本地还是后台。这也给应用程序的开发人员提供了便利。
本实施例中,提出了一个跨平台的嵌入式空间数据引擎,将其命名为MobileMap。 MobileMap数据引擎是一个空间数据、非空间数据混合的嵌入式数据引擎。它占用资源少、效 率高,并且和类库数据服务中间件结合紧密。同时,该引擎不依赖于任何其他数据引擎和数 据库技术,可在多个平台上通用。
如图6所示,数据管理模块就是前面所介绍的数据服务中间件,包括地理数据管理模块 和显示数据管理模块。该模块负责打开、关闭数据库(数据库操作);査询、增添、删除和修 改数据(数据操作);实体集合的定义、实体集合中属性索引的定义(数据定义)等等。接下 来,根据请求的不同将控制分别交给执行引擎(数据存取操作)和网络数据分析引擎(路径 分析操作)。这两个引擎根据索引、排序情况选择一种最好的方法来执行,生成"物理执行队 列"。(比如如果有一属性存在索引,则在查询的时候可采用索引査询的方法)。
然后执行上面产生的"物理执行队列"。当需要操作数据时,则向下层模块提出请求,并 得到相应的数据。在此,加入一层缓冲层避免了同一盘块在短时间内被重复访问。结合嵌入式设备资源短缺的特点,本设计提出了一种"空间数据、非空间数据、管理数 据统一存储和管理"的设想。以数据库中常用的"表"概念为纽带,将所有底层需要存储和 管理的数据结合在一起。总而言之,本设计中数据管理的思路是用表来管理地理数据;用 表来管理表信息。所有对数据的存取和管理全部使用SQL语句来实现。通常来说,空间数据 和非空间数据是分开进行管理的,这是因为空间数据和非空间数据的处理方法有着本质的不 同(例如不同的SQL语句、不同的索引算法等)。但是就存储层面上来看,非空间属性数据可 以用二维表的方式进行存储,对应于其中的定长字段。为了方便起见,空间矢量数据其实也 可以用同样的方式进行存储,在实现中它可以被看作是非定长字段。把空间数据看作是二维 表的非定长字段方便了数据管理,大大降低了实现的复杂度。此外,把所有数据表的元数据 通过一张系统表来进行统一管理也是本设计数据管理的特色。 一般来说,二维表中众多字段 本身也拥有很多属性需要进行管理,例如字段的名字、字段的类型、字段的长度等。本设 计通过引入系统表来达到以表管表的目的。
对于文件的组织方式, 一个数据库对应的所有文件将被放在一个文件夹中,文件夹命名 为数据库的名字。总共有两张系统表数据库系统表和字段集系统表,分别对应两个文件"数 据库名.DBM"和"数据库名.FSM"。数据库系统表管理当前数据库中所有的实体集合;字段系 统表则管理所有实体集合中的所有字段信息。每个实体集合都有一张表(表文件)与之对应, 放在同一个文件夹下,命名为"实体集合名.DBF"。实体集合中的矢量数据还需单独存放在名 为"实体集合名—字段名.0BJ"文件中。其中的字段名对应于实体集合表中的某个变长字段。
综上所述,本发明具有以下有益效果
(1) 跨平台性。该系统包括一个跨平台的嵌入式GIS基础类库,基于其开发的应用系统 能够方便地移植到多个嵌入式平台上。
(2) 扩展性。该系统为分层设计,并且模块之间的界限清晰,接口明确。在设计时特地 为用户今后的二次开发预留了接口。基于本类库,用户可以快速高效地定制和扩展自己的嵌 入式GIS应用程序。
(3) 集成性。基于本系统,通过同一个接口,用户的系统可以同时集成多种异构的GIS 数据资源,甚至可以是一个网络上的SOCKET资源。
(4) 动态性。动态性主要体现在地图矢量数据和属性数据的动态获得。 以上实施例仅用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修
改或局部替换,均应涵盖在本发明的权利要求范围当中。
权利要求
1. 一种跨平台嵌入式地理信息系统,其特征在于,该系统包括应用程序层,用于执行地图的基本操作、查询各类地理信息、路径分析以及数据采集;及数据服务中间件层,连接所述应用程序层,包括工程管理模块、地理数据管理模块、显示数据管理模块,该数据服务中间件层用于对应用程序层屏蔽底层的实现细节,通过地理数据管理模块和显示数据管理模块向上层提供地理数据和显示数据的存取接口;及数据引擎层,连接所述数据服务中间件层;及平台相关模块层,连接所述数据引擎层,将与特定操作系统相关的所有操作集中在一起;及基础算法组件,连接所述数据引擎层,该基础算法组件包含所述地理信息系统所需要使用的GIS算法及数据结构;及地理资源文件层,连接所述数据引擎层及平台相关模块层,用于提供地理资源的信息;及操作系统层,连接所述地理资源文件层,该操作系统层包括若干嵌入式平台。
2、 根据权利要求1所述的嵌入式地理信息系统,其特征在于所述系统还包括一类库, 该类库分别定义应用程序层、数据服务中间件层、数据引擎层、平台相关模块层、基 础算法组件、地理资源文件层、操作系统层的相关信息。
3、 根据权利要求1所述的嵌入式地理信息系统,其特征在于所述数据服务中间件层包 括工程管理模块、地理数据管理模块、显示数据管理模块;所述地理数据管理模块、 显示数据管理模块连接工程管理模块。
4、 根据权利要求2所述的嵌入式地理信息系统,其特征在于所述应用程序层和数据服 务中间件层的接口是类库中类以及类的成员变量和成员函数。
5、 根据权利要求2所述的嵌入式地理信息系统,其特征在于所述数据服务中间件层是 整个类库对外的主要接口 ,应用程序层通过该接口来使用整个类库。
6、 根据权利要求1所述的嵌入式地理信息系统,其特征在于所述数据引擎层包括数据 管理模块、执行引擎模块、网络数据分析引擎模块、索引文件记录管理模块、缓冲管 理模块、以及存储管理模块;所述数据管理模块连接执行引擎模块、网络数据分析引擎模块; 所述执行引擎模块、网络数据分析引擎模块连接索引文件记录管理模块;所述执行引擎模块、网络数据分析引擎模块、索引文件记录管理模块连接缓冲管 理模块;所述缓冲管理模块连接存储管理模块。
7、 根据权利要求1所述的嵌入式地理信息系统,其特征在于所述数据引擎层采用标准C十+进行编码,基于MobileMap嵌入式GIS文件格式;如果底层的文件为shapefile 文件格式、tab文件格式,则将数据引擎层替换为对应于相应文件格式的数据引擎。
8、 根据权利要求1所述的嵌入式地理信息系统,其特征在于所述平台相关模块层和数 据引擎层通过函数调用和数据结构使用来进行交互。
9、 根据权利要求1所述的嵌入式地理信息系统,其特征在于所述地理数据管理模块为 一数据仓库,该数据仓库包括若干数据库,各数据库包括若干实体集合,各实体集合 包括若干实体。
10、 根据权利要求9所述的嵌入式地理信息系统,其特征在于所述实体集合包括简单实体集合、复合实体集合、复杂实体集合。
全文摘要
本发明揭示了一种跨平台嵌入式地理信息系统,包括应用程序层、数据服务中间件层、数据引擎层、平台相关模块层、基础算法组件、地理资源文件层、操作系统层。所述系统还包括一跨平台嵌入式GIS基础类库,该类库分别定义应用程序层、数据服务中间件层、数据引擎层、平台相关模块层、基础算法组件、地理资源文件层、操作系统层的相关信息。本发明跨平台嵌入式地理信息系统通过使用不同的数据引擎层,可以同时集成多种异构的嵌入式GIS数据资源;同时,通过替换不同的平台相关模块层,本发明跨平台嵌入式地理信息系统可以不经修改直接运行在多种嵌入式操作系统上。
文档编号G06F9/44GK101290573SQ20081003837
公开日2008年10月22日 申请日期2008年5月30日 优先权日2008年5月30日
发明者钰 方, 曾国荪, 沈文裕, 白星振, 苗夺谦, 蒋昌俊, 闫春钢, 陈闳中 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1