王 碩
(漳州職業(yè)技術(shù)學(xué)院 電子工程系,福建 漳州 363000)
隨著市場的迅速發(fā)展,電信行業(yè)競爭日趨激烈,移動(dòng)運(yùn)營商被迫尋找新的途徑去創(chuàng)造新的利潤.在各種移動(dòng)增值業(yè)務(wù)當(dāng)中,移動(dòng)位置信息服務(wù)是最具市場潛力的一種.但它對移動(dòng)網(wǎng)絡(luò)通信和空間信息技術(shù)需求越來越高,原有的開放GPS和整合式移動(dòng)通信裝置遠(yuǎn)遠(yuǎn)滿足不了社會(huì)的需求,使得移動(dòng)定位與信息系統(tǒng)GIS 的定位產(chǎn)品的加值服務(wù)也越來越多.傳統(tǒng)GIS具備豐富的電子圖資源及其強(qiáng)大的空間分析能力,但空間分析的實(shí)時(shí)性能力還不夠;而手機(jī)通話無法讓對方得知撥號者目前位置;由此,在市場和技術(shù)的雙重驅(qū)動(dòng)下,無線定位業(yè)務(wù)(LBS)技術(shù)隨之發(fā)展起來.
無線定位業(yè)務(wù) (Location-Based Ser-vices,LBS)又稱為位置業(yè)務(wù),是由移動(dòng)通信網(wǎng)絡(luò)和衛(wèi)星定位系統(tǒng)結(jié)合在一起提供的一種增值業(yè)務(wù),通過一組定位技術(shù)獲得移動(dòng)終端的位置信息(如經(jīng)緯度坐標(biāo)數(shù)據(jù)),提供給移動(dòng)用戶本人或他人以及通信系統(tǒng),實(shí)現(xiàn)各種與位置相關(guān)的業(yè)務(wù).LBS可讓使用者透過移動(dòng)設(shè)備(如手機(jī)、PDA 等)查詢自己的空間位置,并通過實(shí)時(shí)所在位置連接到附近周圍環(huán)境,從而取得地理信息以及根據(jù)實(shí)時(shí)需求所擷取到的生活信息等,更進(jìn)一步解決使用者與此地域性的實(shí)時(shí)需求,其用途可是單純的個(gè)人行為,也可是復(fù)雜的大型的急難救援或車隊(duì)管理等.
本文提出了一種基于API架構(gòu)的位置服務(wù)解決方案.API(Application Programming Interface)全稱是應(yīng)用程序編程接口,本文在此接口的基礎(chǔ)上采用混合定位技術(shù),實(shí)現(xiàn)移動(dòng)的位置服務(wù).這是一種專門為不同的應(yīng)用之間的互相操作而設(shè)計(jì)的軟件體系結(jié)構(gòu).可提供基于手機(jī)的定位接口以及基于桌面瀏覽器的Java Script接口.它在分布平臺上可實(shí)現(xiàn)快速開發(fā)基于位置的業(yè)務(wù),改善用戶體驗(yàn)、增加業(yè)務(wù)粘性,投放更精準(zhǔn)的基于位置的廣告,增加收入等.且可通過手機(jī)客戶端、瀏覽器、社交網(wǎng)站及多種桌面互聯(lián)網(wǎng)等方面進(jìn)行相應(yīng)的應(yīng)用.其主要采取了分段定價(jià)的策略.典型的應(yīng)用模型如圖1所示.

圖1 分段定價(jià)模型
在第三代移動(dòng)通信系統(tǒng)中,實(shí)現(xiàn)LBS應(yīng)用的網(wǎng)絡(luò)模型如圖2所示.從圖中可以看出,實(shí)現(xiàn)LBS業(yè)務(wù)涉及到多個(gè)實(shí)體.
LBS網(wǎng)絡(luò)構(gòu)架的主要流程是:由定位操作平臺(API)獲取各個(gè)移動(dòng)臺的位置信息;通過中間件LCS向SP提供定位服務(wù)接口,同時(shí)訪問運(yùn)營商的定位資源GIS完成對LBS業(yè)務(wù)的計(jì)費(fèi)、管理等功能;而GIS系統(tǒng)是基于LBS應(yīng)用的地理信息服務(wù)的,主要包括路徑搜索、目錄查詢和地圖服務(wù);SP則是為最終用戶提供LBS服務(wù)的;CP在這里指的是能夠提供電子地圖數(shù)據(jù)和POI(興趣點(diǎn))信息的內(nèi)容的供應(yīng)商;最后終端采用與網(wǎng)絡(luò)交互方式完成定位操作,而與網(wǎng)絡(luò)交互方式是通過WAP/Java/BREW/SMS等方式與SP交互得到最終服務(wù).對于矢量地圖進(jìn)行服務(wù),終端通過內(nèi)置矢量地圖瀏覽器即可完成識別.

圖2 實(shí)現(xiàn)LBS應(yīng)用的網(wǎng)絡(luò)架構(gòu)
位置服務(wù)核心部分是LBS. 一個(gè)完整的 LBS系統(tǒng)是由四部分組成:空間定位系統(tǒng)、位置服務(wù)中心、移動(dòng)終端以及通信網(wǎng)絡(luò).如圖3所示.

圖3 LBS系統(tǒng)工作流程
LBS 系統(tǒng)工作的主要流程是:首先由用戶通過移動(dòng)終端發(fā)出位置服務(wù)請求,通信的沿途各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)接到該請求后,就被位置服務(wù)中心所接受;其次再經(jīng)過嚴(yán)格的審核認(rèn)證以后,服務(wù)中心調(diào)用定位系統(tǒng),從而獲得用戶的位置信息,或者根據(jù)用戶配有 GPS 等主動(dòng)定位設(shè)備,可以通過無線網(wǎng)絡(luò)主動(dòng)將位置參數(shù)發(fā)送給服務(wù)中心;最后服務(wù)中心則根據(jù)用戶的位置信息,對服務(wù)內(nèi)容進(jìn)行相應(yīng)的回應(yīng),如發(fā)送路線圖等,具體的服務(wù)內(nèi)容由內(nèi)容提供商供給.
目前,移動(dòng)網(wǎng)絡(luò)使用的定位技術(shù)多種多樣.如網(wǎng)絡(luò)定位,提供更高的定位精度,基站上增加相應(yīng)的測量設(shè)備,代價(jià)較高;GPS技術(shù)(AGPS),主要依靠GPS衛(wèi)星完成定位操作,移動(dòng)臺接收時(shí)至少需要4個(gè)GPS衛(wèi)星的信號,并根據(jù)這些信息完成定位計(jì)算,并將計(jì)算結(jié)果報(bào)告給網(wǎng)絡(luò).對一般的GPS定位技術(shù)來說,需要GPS接收機(jī)在全空域范圍內(nèi)搜索可以使用的GPS衛(wèi)星.通常這種搜索需要很長的時(shí)間,所以不能滿足快速移動(dòng)定位的需要.而移動(dòng)臺的GPS定位,位置的計(jì)算全部由終端自己完成,終端始終處于GPS跟蹤狀態(tài),減少了與網(wǎng)絡(luò)的交互時(shí)間. 可見這些定位技術(shù)都存在一定的弊端,本文介紹采用API混合定位技術(shù)就能很好的解決上述問題.
一種是Mobile API,負(fù)責(zé)為手機(jī)客戶端提供基于基站的定位能力的應(yīng)用程序,適合于移動(dòng)互聯(lián)網(wǎng),其支持Windows Mobile 和J2ME 平臺.另一種是JavaScript API,主要為用戶提供安裝IE插件,當(dāng)用戶使用Wifi上網(wǎng)時(shí),IE插件將和定位服務(wù)配合,完成定位服務(wù).適合基于桌面瀏覽器的應(yīng)用或服務(wù).本文主要介紹Mobile API.
API混合定位技術(shù)接口,采用HTTP POST方式,其中HTTP Body以xml格式存放.上行定位請求格式以xml報(bào)文形式傳輸,下行定位響應(yīng)格式以xml報(bào)文傳輸.
本文主要介紹Google Map API地圖.Google Map API地圖有Google JavaScript和Flash版兩個(gè)版本.其中前一個(gè)地圖API:內(nèi)嵌iFram e展現(xiàn)形式,適用于一般的互聯(lián)網(wǎng)應(yīng)用系統(tǒng),具有標(biāo)準(zhǔn)主流瀏覽器裝載的客戶端系統(tǒng).后一個(gè)以FLASH展現(xiàn)形式,使用Flex開發(fā),適用于標(biāo)準(zhǔn)瀏覽器裝載的客戶端系統(tǒng).除了上述兩種動(dòng)態(tài)API地圖外,還有一種常見的Google 靜態(tài)地圖API,其中以圖片形式展現(xiàn),使用HTTP接口進(jìn)行圖片地圖的創(chuàng)建,所實(shí)現(xiàn)功能較前兩種少,但無需使用Java腳本實(shí)現(xiàn),適用于手機(jī)或定制化客戶端系統(tǒng)的服務(wù)調(diào)用.靜態(tài)地圖和前兩種地圖相比還要求遵從每位查看者每天的唯一(不同)圖像請求不超過1000 次的查詢限制配額,也就是說每個(gè)訪問者每天可以查看1000個(gè)不同的地圖圖片,對于相同的圖片沒有限制.考慮到一般系統(tǒng)的訪問量,此配合即可滿足大部分系統(tǒng)的要求.
從地址名稱解析到具體經(jīng)緯度即地址解析,可設(shè)置縮放級別高低,圖像大小,還可添加標(biāo)記,顯示地圖路徑等,以上是動(dòng)態(tài)和靜態(tài)地圖所共有的,而監(jiān)聽事件,地圖控件,街道全景,交通功能等為動(dòng)態(tài)地圖特有的功能.
系統(tǒng)設(shè)計(jì)流程以應(yīng)用服務(wù)器為第三方,為前端應(yīng)用提供各種業(yè)務(wù)服務(wù).需要定位時(shí),客戶端通過定位端口API獲取定位依據(jù)信息,這是一組加密的數(shù)據(jù)信息,接著由其向應(yīng)用服務(wù)器提交該組加密數(shù)據(jù).應(yīng)用服務(wù)器再將其通過簡單的HTTP接口提交給定位服務(wù)器,定位服務(wù)器根據(jù)定位依據(jù)返回定位結(jié)果,包括當(dāng)前的位置及其誤差評估.應(yīng)用服務(wù)器根據(jù)自己的業(yè)務(wù)邏輯對定位結(jié)果進(jìn)行處理后返回給客戶端.具體流程如圖4所示.
API負(fù)責(zé)采集定位依據(jù),客戶端調(diào)用在各平臺上實(shí)現(xiàn)定位功能,然后按照各方協(xié)議給定的格式封裝好返回給調(diào)用者,調(diào)用者將該定位依據(jù)上報(bào)應(yīng)用服務(wù)器, 由其向定位服務(wù)器請求解析當(dāng)前的位置.當(dāng)發(fā)現(xiàn)位置可能變化時(shí)API會(huì)通知調(diào)用者, API提供了異步回調(diào)和同步返回兩種方式供調(diào)用者獲取定位依據(jù).使用前,調(diào)用者需對API進(jìn)行初始化,設(shè)定回調(diào)的最大最小時(shí)間間隔、位置變化的靈敏度等.

圖4 系統(tǒng)設(shè)計(jì)流程
下面是采用API進(jìn)行LBS移動(dòng)位置服務(wù)部分程序.
API只提供包裝好的定位依據(jù),并利用第三方應(yīng)用程序使用該定位依據(jù)向定位服務(wù)器請求當(dāng)前的位置;
(1)回調(diào)函數(shù)
typedef void (*LOCATIONCALLBACK)(
int nErrCode,
unsigned char* buffer;
int nLen,
void *pUserData
);
(2)定義CLocationAPI類型及成員變量
第三方應(yīng)用可以通過異步回調(diào)或同步獲取的方式使用定位API;
class CuseLocation
{
CLocationAPI m_locationAPI;
}
(3)設(shè)置屬性,包括靈敏度和時(shí)間間隔
①定位API可以設(shè)置敏感度, 以便第三方應(yīng)用判斷變化以及防抖.
②定位API可以設(shè)置時(shí)間間隔,時(shí)間間隔太小,可忽略不計(jì),若太大,則調(diào)回函數(shù).
根據(jù)應(yīng)用設(shè)定的敏感度及時(shí)間間隔, 定位API可設(shè)置一個(gè)異步回調(diào)的最小時(shí)間間隔及一個(gè)最大時(shí)間間隔(以秒計(jì)),且這個(gè)時(shí)間間隔要適度.
③設(shè)置獲取gps端口號,默認(rèn)為com1 ,GPS有默認(rèn)的刷新頻率,定位API自行檢查GPS設(shè)備,如果開啟則需要進(jìn)行數(shù)據(jù)采集,在第三方應(yīng)用程序請求定位依據(jù)時(shí)一并送上.
④設(shè)置獲取gps波特率,默認(rèn)為4800.
m_locationAPI.SetSensitivity( eSensitivityHigh );
m_locationAPI.SetNotifyInterval( 300, 600 );
m_locationAPI.SetGpsPort(1);
m_locationAPI.SetGpsBaud(4800);
(4)添加回調(diào)函數(shù)及其參數(shù)
m_locationAPI.AddLocationCallback( TestCallBack, this );
(5)啟動(dòng)采集定位數(shù)據(jù)
定位API開始采集定位依據(jù),發(fā)生匹配敏感度設(shè)置及時(shí)間間隔的數(shù)據(jù)變化后即通知應(yīng)用.
m_locationAPI.Start();
(6)回調(diào)函數(shù)中處理數(shù)據(jù)
void TestCallBack(int nErrCode, unsigned char* buffer, int nLen, void* pUserData);
{
CUseLocation* pUseLocation = (CUseLocation*)pUserData;
switch(nErrCode)
{
case ERROR_LOCATION_OK:
break;
case ERROR_LOCATION_GSM:
break;
case ERROR_LOCATION_WIFI:
break;
case ERROR_LOCATION_GPS:
break;
default:
break;
}
}
(7)定位結(jié)束
m_locationAPI.Stop();
LBS正在成為一種被企業(yè)和用戶廣泛接受的一種業(yè)務(wù),今后,采用API技術(shù)的 LBS 必將以其便捷和豐富的功能進(jìn)入人們的生活,為人們帶來巨大的便利.而API的開放標(biāo)準(zhǔn)特性允許第三方獲得授權(quán)訪問和開發(fā)基于電信網(wǎng)絡(luò)的第三方應(yīng)用.使API的LBS業(yè)務(wù)研究具有一定的價(jià)值.在這種情況下,位置服務(wù)系統(tǒng)將成為面向超大規(guī)模用戶群的公眾定位服務(wù)接入平臺.使得容納大用戶并發(fā)訪問的網(wǎng)絡(luò)結(jié)構(gòu)和地圖在無線網(wǎng)絡(luò)上的傳播方式成為當(dāng)前研究的熱點(diǎn)問題.本文正是利用API技術(shù),實(shí)現(xiàn)了一個(gè)開放的 LBS 系統(tǒng),結(jié)果證明這是一種可行的方案,并且具有一系列的優(yōu)點(diǎn):采用API技術(shù)有利于跨系統(tǒng)跨平臺的大規(guī)模的信息交換; 覆蓋范圍高達(dá)本地網(wǎng)、部分本地網(wǎng)和提供漫游網(wǎng)等,加強(qiáng)了網(wǎng)絡(luò)間的溝通;計(jì)算量小;定位精度高;對網(wǎng)絡(luò)數(shù)據(jù)傳輸能力強(qiáng).再采用java語言能夠兼容多種用戶終端,并充分利用了其組件化設(shè)計(jì)的特性,提高了系統(tǒng)的可復(fù)用性和可擴(kuò)展性.
參考文獻(xiàn):
[1]Shuichi Takino.“GIS ON THE FLY” - to realize wireless GIS network by java mobile phone[C]. International symposium on Asia GIS ,2001
[2]房志剛,萬曉榆,樊自甫.基于Parlay開放API的LBS業(yè)務(wù)研究[J].重慶郵電大學(xué)學(xué)報(bào),2007,9(1):23-26.
[3]朱建偉.位置信息服務(wù)系統(tǒng)中定位服務(wù)平臺相關(guān)技術(shù)的研究[D].武漢:武漢大學(xué),2005,6:45-46.
[4]劉江濤.移動(dòng)位置信息服務(wù)平臺的研究與實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2007,5:86-89.
[5]李余琨,楊平,朱燊權(quán).支持開放的API接口的增強(qiáng)型業(yè)務(wù)[J].計(jì)算機(jī)工程與應(yīng)用, 2004,4(10):63-68.