LBS空间数据内容与管理方法

(整期优先)网络出版时间:2019-04-18
/ 3

摘 要:LBS空间数据的管理和数据库建立是LBS定位服务系统的核心。本文在论述了LBS系统各个部分的构成的基础上,探讨了LBS空间数据库管理的具体内容,设计了基于Oracle Spatial对象关系型数据库的LBS空间数据存储与管理的方法,设计和开发了面向对象的空间数据引擎,研究了LBS数据通过空间数据引擎上传到Oracle Spatial的技术。

关键词:LBS 空间数据库 空间数据引擎

一、引 言

基于位置的服务(Location Based Services,LBS)是指采用无线定位、GIS、Internet、无线通讯、数据库等相关技术交叉融合的一种基于空间位置的移动信息服务,是通过获取移动用户的位置信息为用户提供包括交通引导、地点查询、位置查询、车辆跟踪、商务网点查询,儿童看护、紧急呼叫等众多服务的技术基础[1]~[2]。近年来,随着移动通信和移动地理信息技术的飞速发展,为地理空间信息的应用带来了新的机遇,使得LBS的研究显得尤为重要。目前,ESRI公司提出了ARC Location Service方案,MapInfo公司提供了无线空间信息服务解决方案MLS,Sun公司的Java Location Service平台等许多大公司从不同的行业角度提出了位置服务解决方案。这些方案主要是从技术方面解决了位置服务的应用,而LBS空间数据的管理的内容、存储形式和存储方法是LBS应用的核心和重点。本文在构建了LBS系统体系结构的基础上,研究了基于国家行业标准的LBS空间数据库内容及其分类,并探讨了利用Oracle Spatial存储LBS空间数据的形式和存储方法,以及设计了传统GIS数据上传LBS数据库的空间数据引擎。

二、LBS系统的构成

LBS系统采用多层的分布式网络应用模型,按应用逻辑功能划分为表现层移动终端、中间层通信网络、应用服务层和数据层空间数据库(如图1所示)。各层的结构和功能是:①移动终端提供地理信息和属性数据的表示,以人机交互的方式接受用户请求和给用户提供GIS 功能的选择,可以是移动电话(Mobile Phone)、个人数字助理(Personal Digital Assistant,PDA)、手持计算机(Pocket PC),也可以是通过Internet通讯的台式计算机(Desktop PC)[3];②通信网络层通过服务器传递给LBS服务平台,主要包括WAP网关、WAP服务器(Wap Server)、WEB服务器(Web Server);③服务平台根据用户请求和用户当前位置通过空间数据引擎上载到数据层空间数据库,主要包括地图服务器(Map Server)以及服务中心等;④数据层负责空间数据库和数据文件的管理、维护和存储,根据请求的业务服务操作数据[4],主要是空间数据库以及数据文件等。本文利用Oracle Spatial对数据进行存储、管理。


图1 LBS的构成

Fig1 the Framework of LBS

三、LBS空间数据库的内容与管理方法

在LBS系统中用户请求和用户当前位置通过空间数据引擎上载到数据层空间数据库,然后利用空间数据库对数据进行存储、管理和处理后,将结果通过网关返回给用户。在这个过程中,LBS空间数据库表现出了巨大的作用,是整个过程的核心。而城市空间信息浩瀚、复杂,本文在对比城市空间信息数据库构成的基础上,根据LBS系统体系的需要,对LBS空间数据的内容进行了归纳、整理和分类,为LBS空间数据库的建立奠定基础。

1.LBS空间数据的内容

LBS空间数据库是一个综合的数据集,包括空间要素的几何信息、要素的基本属性、要素的增强属性、交通导航信息等。它着重表达道路及其属性信息,以及LBS应用所需的其他相关信息,如地址系统信息、地图显示背景信息、用户所关注的公共机构及服务信息等[5]。而城市空间信息数据库所存储和管理的是城市中所有的基础设施和空间现象,主要包括遥感影像数据、电子地图数据、定位信息数据、社会经济数据、基础地理数据等。LBS空间数据库所包含的信息要比城市空间信息数据库少得多,它是建立在城市空间信息数据库的基础上的,LBS系统根据用户的需求,通过信息提取、数据抽取与清理等方法来调取城市空间信息数据库的数据为用户服务。

根据国家标准《导航地理数据模型与交换格式》,通过对数据的处理,LBS空间数据的地理要素可以分为以下13类:

(1)道路与渡口要素数据:包括地址区域要素、地址区域边界要素、封闭交通区域要素、道路元素、渡口联络线、连接点、路段、渡口、交叉点、环岛、聚合路、汇交路口。

(2)行政区划要素数据:包括行政区划边界元素、行政区划边界连接点、国家、第1~7级行政区划、第8级行政区划、第9级行政区划、跨国行政区划行政地点。

(3)命名区域要素数据:包括命名区域边界元素、命名区域边界连接点、城市建成区、统计区、选区、急救医疗服务区、消防区、有名称区域、电话区、治安区、邮区、学区。



(4)土地覆盖与利用要素数据:包括建筑物、人工表面、农业区、森林与半自然区、湿地、岛屿。

(5) 构造物要素数据:包括指交通网络中的重要建筑物。如桥梁、高架桥、隧道、沟渠等。

(6)铁路要素数据:包括铁路元素、铁路元素连接点。

(7)水系要素数据:包括水体、水体边界元素、水体边界连接点。

(8)道路附属设施要素数据:包括交通标志、路标、路面标记、交通信息灯、照明灯、人行横道、测量设备、环境设备、安全设备。

(9)服务要素数据:包括一些可由用户自定义的服务种类,如服务入口点等。

(10)公共交通要素数据:包括公交路线线段、公交连接点、公交路线、公交线路、公交车站、公交换乘区、公交点。

(11)链要素数据:在有些应用领域,人们习惯于通过地理实体的相对长度及相对位置来定义实体,链要素走用来描述这类线形地理是实体的要素。

(12)通用要素数据:指其性质、属性及关系适用于所有要素主题中的要素。

(13)用户自定义要素数据:指用户自定义的要素。

2.LBS空间数据的存储与管理

由于LBS空间数据具有数据量大、空间数据和属性数据相结合以及空间数据操作难度大等特点,而且对空间数据操作的软件也多种多样,所以对LBS空间数据的有效存储和管理也显得日趋重要。本文选用Oracle Spatial这种对象-关系数据库管理方式对LBS空间数据进行管理和存储。这种方式是在传统关系数据库管理系统之上扩展使之能够同时管理矢量图形数据和属性数据;其效率较高,又具有数据的安全性、一致性、完整性、并发控制以及数据损坏后的恢复方面等基本功能,支持海量数据管理[6]。Oracle Spatial通过对象数据类型SDO_GEOMETRY实现对空间数据的存储,Oracle Spatial规定含有该数据类型的数据表必须在另外的字段上定义主键,其定义如下:

CREATE TYPE SDO-GEOMETRY AS OBJECT(

  SDO_GTYE NUMBER,

  SDO_SRID NUMBER,

  SDO_POINT SDO_POINT_TYPE,

  SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY,

SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY,);

其中:SDO_GTYPE表示几何图形类型;SDO_SRID用来标识坐标系统;SDO_POINT定义为一组变长数组,存储点的X,Y和Z坐标;SDO_ELEM_INFO定义为一组变长数组,解释如何存储坐标;SDO_ORDINATES定义为一组变长数组,存储组成空间图形的坐标。

LBS空间数据要素表的结构如表1所示。其中ID用来存储LBS空间数据要素的标号;NAME用来存储LBS空间数据要素的名称;字段GEOLOC是对象类型的字段,该字段极为重要,因为所有的空间数据就存在该字段的各个记录中。其它的字段还可以存储LBS空间数据要素的其它信息。

表1 LBS空间数据要素表的结构



3.LBS空间数据上传Oracle Spatial方法

LBS空间数据通过空间数据引擎上传到Oracle空间数据库。空间数据引擎(Spatial Data Engine)是指提供存储、查询、检索空间地理数据,以及对空间地理数据进行空间关系运算和空间分析的程序功能集合,是一种处于应用程序和数据库管理系统之间的中间件技术,在用户和空间数据库之间提供一个开放接口[7],类似于ODBC或ADO。用户可以通过空间数据引擎将不同形式的空间数据提交给空间数据库,由空间数据库统一管理;同样,用户也可以通过空间数据引擎从空间数据库中获取空间类型的数据,满足客户端操作需求。

本文设计的空间数据库引擎的工作原理为:数据通过空间数据引擎上载到数据层空间数据库(如Oracle Spatial)中,利用空间数据库(如Oracle Spatial)对数据进行存储、管理和处理,并将结果通过网关返回给用户。返回的信息根据业务的需要,可以返回空间信息关联到的所有信息,通过网关返回到移动终端。如可以是当前位置的地名、城市地标、自定义地标、道路名称等位置信息;也可以是当前位置的周边信息:医院、宾馆、加油站、公交车站等(如图2所示)。


图2 空间数据库引擎模型

Fig2 The Model of Spatial data Engine

在空间数据上传的过程中将涉及到数据库的三个表。第一个是MapCatalog。每个Oracle Spatial数据库中都必须有一MapCatalog而且也只需要一个,如果第一次上传空间数据没有这个表,就需要创建这个表,这个表必须创建在MapInfo用户下。只有创建了这个表,才能真正实现数据库中的空间数据表在MapInfo系列软件中显示为地图图层。第二个表是元数据表,Oracle Spatial的元数据表存储了空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息,用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息。因此创建一个空间数据表同时也要更新元数据表,第三个表就是保存空间数据的表,通过SQL语句的操作把空间数据保存在数据库中。



四、结 论

1.LBS空间数据的内容是LBS应用研究的前提和基础,本文从LBS空间数据的地理要素入手,对LBS空间数据的内容进行了归纳、整理和分类,为LBS空间数据库的建立奠定基础。

2.LBS空间数据库是LBS定位服务系统的核心,LBS空间数据库的建立对整个LBS定位服务系统起着重要的作用,本文选用Oracle Spatial来存储与管理LBS空间数据,不仅可以存储海量的空间信息,并为多用户的并发访问以及数据损坏后的恢复方面等方面提供服务。

3.本文设计了面向对象的空间数据引擎,并研究了在空间数据上传的过程中将涉及到数据库的三个表。LBS空间数据可以通过空间数据库引擎上传到LBS空间数据库,解决了传统GIS数据的再利用及用户和空间数据库之间通讯等问题。

参考文献

[1] 余涛,余彬.位置服务[M].北京:机械工业出版社,2005.

[2] 刘继兴,李军,张纪金.3G网络中LBS的分析与发展思路[J].中国数据通信,2003,(8):61-65.

[3] 蒋捷,韩刚,陈军.导航地理数据库[M].北京:科学出版社,2003.

[4] 徐爱民,吕志平,李建.基于J2EE开发平台的LBS系统研究[J].测绘通报.2004,(3):35-38.

[5] 蒋捷.定位服务中的导航地理数据及其技术问题[J].测绘科学,2004,29(7):80-83.

[6] 张新长,马林兵,张青年.地理信息系统数据库[M].北京:科学出版社,2005:51-53.

[7] 张大争,何建国,董恒,等.基于Oracle Spatial 的异构空间数据应用研究[J].国土资源信息化,2002(3):33-36.