LBS空間數(shù)據(jù)內(nèi)容與管理方法
羅春華 唐詩華 譚慶
摘 要:LBS空間數(shù)據(jù)的管理和數(shù)據(jù)庫建立是LBS定位服務(wù)系統(tǒng)的核心。本文在論述了LBS系統(tǒng)各個部分的構(gòu)成的基礎(chǔ)上,探討了LBS空間數(shù)據(jù)庫管理的具體內(nèi)容,設(shè)計了基于Oracle Spatial對象關(guān)系型數(shù)據(jù)庫的LBS空間數(shù)據(jù)存儲與管理的方法,設(shè)計和開發(fā)了面向?qū)ο蟮目臻g數(shù)據(jù)引擎,研究了LBS數(shù)據(jù)通過空間數(shù)據(jù)引擎上傳到Oracle Spatial的技術(shù)。
關(guān)鍵詞:LBS 空間數(shù)據(jù)庫 空間數(shù)據(jù)引擎
一、引 言
基于位置的服務(wù)(Location Based Services,LBS)是指采用無線定位、GIS、Internet、無線通訊、數(shù)據(jù)庫等相關(guān)技術(shù)交叉融合的一種基于空間位置的移動信息服務(wù),是通過獲取移動用戶的位置信息為用戶提供包括交通引導(dǎo)、地點查詢、位置查詢、車輛跟蹤、商務(wù)網(wǎng)點查詢,兒童看護、緊急呼叫等眾多服務(wù)的技術(shù)基礎(chǔ)[1]~[2]。近年來,隨著移動通信和移動地理信息技術(shù)的飛速發(fā)展,為地理空間信息的應(yīng)用帶來了新的機遇,使得LBS的研究顯得尤為重要。目前,ESRI公司提出了ARC Location Service方案,MapInfo公司提供了無線空間信息服務(wù)解決方案MLS,Sun公司的Java Location Service平臺等許多大公司從不同的行業(yè)角度提出了位置服務(wù)解決方案。這些方案主要是從技術(shù)方面解決了位置服務(wù)的應(yīng)用,而LBS空間數(shù)據(jù)的管理的內(nèi)容、存儲形式和存儲方法是LBS應(yīng)用的核心和重點。本文在構(gòu)建了LBS系統(tǒng)體系結(jié)構(gòu)的基礎(chǔ)上,研究了基于國家行業(yè)標(biāo)準(zhǔn)的LBS空間數(shù)據(jù)庫內(nèi)容及其分類,并探討了利用Oracle Spatial存儲LBS空間數(shù)據(jù)的形式和存儲方法,以及設(shè)計了傳統(tǒng)GIS數(shù)據(jù)上傳LBS數(shù)據(jù)庫的空間數(shù)據(jù)引擎。
二、LBS系統(tǒng)的構(gòu)成
LBS系統(tǒng)采用多層的分布式網(wǎng)絡(luò)應(yīng)用模型,按應(yīng)用邏輯功能劃分為表現(xiàn)層移動終端、中間層通信網(wǎng)絡(luò)、應(yīng)用服務(wù)層和數(shù)據(jù)層空間數(shù)據(jù)庫(如圖1所示)。各層的結(jié)構(gòu)和功能是:①移動終端提供地理信息和屬性數(shù)據(jù)的表示,以人機交互的方式接受用戶請求和給用戶提供GIS 功能的選擇,可以是移動電話(Mobile Phone)、個人數(shù)字助理(Personal Digital Assistant,PDA)、手持計算機(Pocket PC),也可以是通過Internet通訊的臺式計算機(Desktop PC)[3];②通信網(wǎng)絡(luò)層通過服務(wù)器傳遞給LBS服務(wù)平臺,主要包括WAP網(wǎng)關(guān)、WAP服務(wù)器(Wap Server)、WEB服務(wù)器(Web Server);③服務(wù)平臺根據(jù)用戶請求和用戶當(dāng)前位置通過空間數(shù)據(jù)引擎上載到數(shù)據(jù)層空間數(shù)據(jù)庫,主要包括地圖服務(wù)器(Map Server)以及服務(wù)中心等;④數(shù)據(jù)層負(fù)責(zé)空間數(shù)據(jù)庫和數(shù)據(jù)文件的管理、維護和存儲,根據(jù)請求的業(yè)務(wù)服務(wù)操作數(shù)據(jù)[4],主要是空間數(shù)據(jù)庫以及數(shù)據(jù)文件等。本文利用Oracle Spatial對數(shù)據(jù)進行存儲、管理。
圖1 LBS的構(gòu)成
Fig1 the Framework of LBS
三、LBS空間數(shù)據(jù)庫的內(nèi)容與管理方法
在LBS系統(tǒng)中用戶請求和用戶當(dāng)前位置通過空間數(shù)據(jù)引擎上載到數(shù)據(jù)層空間數(shù)據(jù)庫,然后利用空間數(shù)據(jù)庫對數(shù)據(jù)進行存儲、管理和處理后,將結(jié)果通過網(wǎng)關(guān)返回給用戶。在這個過程中,LBS空間數(shù)據(jù)庫表現(xiàn)出了巨大的作用,是整個過程的核心。而城市空間信息浩瀚、復(fù)雜,本文在對比城市空間信息數(shù)據(jù)庫構(gòu)成的基礎(chǔ)上,根據(jù)LBS系統(tǒng)體系的需要,對LBS空間數(shù)據(jù)的內(nèi)容進行了歸納、整理和分類,為LBS空間數(shù)據(jù)庫的建立奠定基礎(chǔ)。
1.LBS空間數(shù)據(jù)的內(nèi)容
LBS空間數(shù)據(jù)庫是一個綜合的數(shù)據(jù)集,包括空間要素的幾何信息、要素的基本屬性、要素的增強屬性、交通導(dǎo)航信息等。它著重表達道路及其屬性信息,以及LBS應(yīng)用所需的其他相關(guān)信息,如地址系統(tǒng)信息、地圖顯示背景信息、用戶所關(guān)注的公共機構(gòu)及服務(wù)信息等[5]。而城市空間信息數(shù)據(jù)庫所存儲和管理的是城市中所有的基礎(chǔ)設(shè)施和空間現(xiàn)象,主要包括遙感影像數(shù)據(jù)、電子地圖數(shù)據(jù)、定位信息數(shù)據(jù)、社會經(jīng)濟數(shù)據(jù)、基礎(chǔ)地理數(shù)據(jù)等。LBS空間數(shù)據(jù)庫所包含的信息要比城市空間信息數(shù)據(jù)庫少得多,它是建立在城市空間信息數(shù)據(jù)庫的基礎(chǔ)上的,LBS系統(tǒng)根據(jù)用戶的需求,通過信息提取、數(shù)據(jù)抽取與清理等方法來調(diào)取城市空間信息數(shù)據(jù)庫的數(shù)據(jù)為用戶服務(wù)。
根據(jù)國家標(biāo)準(zhǔn)《導(dǎo)航地理數(shù)據(jù)模型與交換格式》,通過對數(shù)據(jù)的處理,LBS空間數(shù)據(jù)的地理要素可以分為以下13類:
(1)道路與渡口要素數(shù)據(jù):包括地址區(qū)域要素、地址區(qū)域邊界要素、封閉交通區(qū)域要素、道路元素、渡口聯(lián)絡(luò)線、連接點、路段、渡口、交叉點、環(huán)島、聚合路、匯交路口。
(2)行政區(qū)劃要素數(shù)據(jù):包括行政區(qū)劃邊界元素、行政區(qū)劃邊界連接點、國家、第1~7級行政區(qū)劃、第8級行政區(qū)劃、第9級行政區(qū)劃、跨國行政區(qū)劃行政地點。
(3)命名區(qū)域要素數(shù)據(jù):包括命名區(qū)域邊界元素、命名區(qū)域邊界連接點、城市建成區(qū)、統(tǒng)計區(qū)、選區(qū)、急救醫(yī)療服務(wù)區(qū)、消防區(qū)、有名稱區(qū)域、電話區(qū)、治安區(qū)、郵區(qū)、學(xué)區(qū)。
(4)土地覆蓋與利用要素數(shù)據(jù):包括建筑物、人工表面、農(nóng)業(yè)區(qū)、森林與半自然區(qū)、濕地、島嶼。
(5) 構(gòu)造物要素數(shù)據(jù):包括指交通網(wǎng)絡(luò)中的重要建筑物。如橋梁、高架橋、隧道、溝渠等。
(6)鐵路要素數(shù)據(jù):包括鐵路元素、鐵路元素連接點。
(7)水系要素數(shù)據(jù):包括水體、水體邊界元素、水體邊界連接點。
(8)道路附屬設(shè)施要素數(shù)據(jù):包括交通標(biāo)志、路標(biāo)、路面標(biāo)記、交通信息燈、照明燈、人行橫道、測量設(shè)備、環(huán)境設(shè)備、安全設(shè)備。
(9)服務(wù)要素數(shù)據(jù):包括一些可由用戶自定義的服務(wù)種類,如服務(wù)入口點等。
(10)公共交通要素數(shù)據(jù):包括公交路線線段、公交連接點、公交路線、公交線路、公交車站、公交換乘區(qū)、公交點。
(11)鏈要素數(shù)據(jù):在有些應(yīng)用領(lǐng)域,人們習(xí)慣于通過地理實體的相對長度及相對位置來定義實體,鏈要素走用來描述這類線形地理是實體的要素。
(12)通用要素數(shù)據(jù):指其性質(zhì)、屬性及關(guān)系適用于所有要素主題中的要素。
(13)用戶自定義要素數(shù)據(jù):指用戶自定義的要素。
2.LBS空間數(shù)據(jù)的存儲與管理
由于LBS空間數(shù)據(jù)具有數(shù)據(jù)量大、空間數(shù)據(jù)和屬性數(shù)據(jù)相結(jié)合以及空間數(shù)據(jù)操作難度大等特點,而且對空間數(shù)據(jù)操作的軟件也多種多樣,所以對LBS空間數(shù)據(jù)的有效存儲和管理也顯得日趨重要。本文選用Oracle Spatial這種對象-關(guān)系數(shù)據(jù)庫管理方式對LBS空間數(shù)據(jù)進行管理和存儲。這種方式是在傳統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)之上擴展使之能夠同時管理矢量圖形數(shù)據(jù)和屬性數(shù)據(jù);其效率較高,又具有數(shù)據(jù)的安全性、一致性、完整性、并發(fā)控制以及數(shù)據(jù)損壞后的恢復(fù)方面等基本功能,支持海量數(shù)據(jù)管理[6]。
Oracle Spatial通過對象數(shù)據(jù)類型SDO_GEOMETRY實現(xiàn)對空間數(shù)據(jù)的存儲,Oracle Spatial規(guī)定含有該數(shù)據(jù)類型的數(shù)據(jù)表必須在另外的字段上定義主鍵,其定義如下:
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用來標(biāo)識坐標(biāo)系統(tǒng);SDO_POINT定義為一組變長數(shù)組,存儲點的X,Y和Z坐標(biāo);SDO_ELEM_INFO定義為一組變長數(shù)組,解釋如何存儲坐標(biāo);SDO_ORDINATES定義為一組變長數(shù)組,存儲組成空間圖形的坐標(biāo)。
LBS空間數(shù)據(jù)要素表的結(jié)構(gòu)如表1所示。其中ID用來存儲LBS空間數(shù)據(jù)要素的標(biāo)號;NAME用來存儲LBS空間數(shù)據(jù)要素的名稱;字段GEOLOC是對象類型的字段,該字段極為重要,因為所有的空間數(shù)據(jù)就存在該字段的各個記錄中。其它的字段還可以存儲LBS空間數(shù)據(jù)要素的其它信息。
表1 LBS空間數(shù)據(jù)要素表的結(jié)構(gòu)
3.LBS空間數(shù)據(jù)上傳Oracle Spatial方法
LBS空間數(shù)據(jù)通過空間數(shù)據(jù)引擎上傳到Oracle空間數(shù)據(jù)庫。空間數(shù)據(jù)引擎(Spatial Data Engine)是指提供存儲、查詢、檢索空間地理數(shù)據(jù),以及對空間地理數(shù)據(jù)進行空間關(guān)系運算和空間分析的程序功能集合,是一種處于應(yīng)用程序和數(shù)據(jù)庫管理系統(tǒng)之間的中間件技術(shù),在用戶和空間數(shù)據(jù)庫之間提供一個開放接口[7],類似于ODBC或ADO。用戶可以通過空間數(shù)據(jù)引擎將不同形式的空間數(shù)據(jù)提交給空間數(shù)據(jù)庫,由空間數(shù)據(jù)庫統(tǒng)一管理;同樣,用戶也可以通過空間數(shù)據(jù)引擎從空間數(shù)據(jù)庫中獲取空間類型的數(shù)據(jù),滿足客戶端操作需求。
本文設(shè)計的空間數(shù)據(jù)庫引擎的工作原理為:數(shù)據(jù)通過空間數(shù)據(jù)引擎上載到數(shù)據(jù)層空間數(shù)據(jù)庫(如Oracle Spatial)中,利用空間數(shù)據(jù)庫(如Oracle Spatial)對數(shù)據(jù)進行存儲、管理和處理,并將結(jié)果通過網(wǎng)關(guān)返回給用戶。返回的信息根據(jù)業(yè)務(wù)的需要,可以返回空間信息關(guān)聯(lián)到的所有信息,通過網(wǎng)關(guān)返回到移動終端。如可以是當(dāng)前位置的地名、城市地標(biāo)、自定義地標(biāo)、道路名稱等位置信息;也可以是當(dāng)前位置的周邊信息:醫(yī)院、賓館、加油站、公交車站等(如圖2所示)。
圖2 空間數(shù)據(jù)庫引擎模型
Fig2 The Model of Spatial data Engine
在空間數(shù)據(jù)上傳的過程中將涉及到數(shù)據(jù)庫的三個表。第一個是MapCatalog。每個Oracle Spatial數(shù)據(jù)庫中都必須有一MapCatalog而且也只需要一個,如果第一次上傳空間數(shù)據(jù)沒有這個表,就需要創(chuàng)建這個表,這個表必須創(chuàng)建在MapInfo用戶下。只有創(chuàng)建了這個表,才能真正實現(xiàn)數(shù)據(jù)庫中的空間數(shù)據(jù)表在MapInfo系列軟件中顯示為地圖圖層。第二個表是元數(shù)據(jù)表,Oracle Spatial的元數(shù)據(jù)表存儲了空間數(shù)據(jù)的數(shù)據(jù)表名稱、空間字段名稱、空間數(shù)據(jù)的坐標(biāo)范圍、坐標(biāo)參考信息以及坐標(biāo)維數(shù)說明等信息,用戶必須通過元數(shù)據(jù)表才能知道ORACLE數(shù)據(jù)庫中是否有Oracle Spatial的空間數(shù)據(jù)信息。因此創(chuàng)建一個空間數(shù)據(jù)表同時也要更新元數(shù)據(jù)表,第三個表就是保存空間數(shù)據(jù)的表,通過SQL語句的操作把空間數(shù)據(jù)保存在數(shù)據(jù)庫中。
四、結(jié) 論
1.LBS空間數(shù)據(jù)的內(nèi)容是LBS應(yīng)用研究的前提和基礎(chǔ),本文從LBS空間數(shù)據(jù)的地理要素入手,對LBS空間數(shù)據(jù)的內(nèi)容進行了歸納、整理和分類,為LBS空間數(shù)據(jù)庫的建立奠定基礎(chǔ)。
2.LBS空間數(shù)據(jù)庫是LBS定位服務(wù)系統(tǒng)的核心,LBS空間數(shù)據(jù)庫的建立對整個LBS定位服務(wù)系統(tǒng)起著重要的作用,本文選用Oracle Spatial來存儲與管理LBS空間數(shù)據(jù),不僅可以存儲海量的空間信息,并為多用戶的并發(fā)訪問以及數(shù)據(jù)損壞后的恢復(fù)方面等方面提供服務(wù)。
3.本文設(shè)計了面向?qū)ο蟮目臻g數(shù)據(jù)引擎,并研究了在空間數(shù)據(jù)上傳的過程中將涉及到數(shù)據(jù)庫的三個表。LBS空間數(shù)據(jù)可以通過空間數(shù)據(jù)庫引擎上傳到LBS空間數(shù)據(jù)庫,解決了傳統(tǒng)GIS數(shù)據(jù)的再利用及用戶和空間數(shù)據(jù)庫之間通訊等問題。
參考文獻
[1] 余濤,余彬.位置服務(wù)[M].北京:機械工業(yè)出版社,2005.
[2] 劉繼興,李軍,張紀(jì)金.3G網(wǎng)絡(luò)中LBS的分析與發(fā)展思路[J].中國數(shù)據(jù)通信,2003,(8):61-65.
[3] 蔣捷,韓剛,陳軍.導(dǎo)航地理數(shù)據(jù)庫[M].北京:科學(xué)出版社,2003.
[4] 徐愛民,呂志平,李建.基于J2EE開發(fā)平臺的LBS系統(tǒng)研究[J].測繪通報.2004,(3):35-38.
[5] 蔣捷.定位服務(wù)中的導(dǎo)航地理數(shù)據(jù)及其技術(shù)問題[J].測繪科學(xué),2004,29(7):80-83.
[6] 張新長,馬林兵,張青年.地理信息系統(tǒng)數(shù)據(jù)庫[M].北京:科學(xué)出版社,2005:51-53.
[7] 張大爭,何建國,董恒,等.基于Oracle Spatial 的異構(gòu)空間數(shù)據(jù)應(yīng)用研究[J].國土資源信息化,2002(3):33-36.