李利正
(紹興職業(yè)技術(shù)學(xué)院信息工程學(xué)院, 浙江 紹興 312000)
?
位置信息服務(wù)技術(shù)的應(yīng)用研究與實(shí)現(xiàn)
李利正
(紹興職業(yè)技術(shù)學(xué)院信息工程學(xué)院, 浙江紹興312000)
[摘要]針對(duì)新城區(qū)商家分散、信息不集中的特點(diǎn),本文充分利用移動(dòng)平臺(tái)的應(yīng)用優(yōu)勢(shì),從軟件設(shè)計(jì)與開(kāi)發(fā)的角度對(duì)基于位置信息服務(wù)的移動(dòng)應(yīng)用進(jìn)行研究,重點(diǎn)探討利用移動(dòng)位置信息服務(wù)和與Internet服務(wù)器交互的關(guān)鍵技術(shù),并應(yīng)用百度地圖API實(shí)現(xiàn)地圖導(dǎo)航功能.實(shí)踐證明應(yīng)用的可行性與便利性,具有較高應(yīng)用價(jià)值.
[關(guān)鍵詞]位置信息服務(wù);MVC;交互響應(yīng)式應(yīng)用
Android系統(tǒng)自發(fā)布以來(lái),以其系統(tǒng)開(kāi)源、適用的機(jī)型多、便于應(yīng)用開(kāi)發(fā)等優(yōu)勢(shì),推動(dòng)了基于Android操作系統(tǒng)的移動(dòng)應(yīng)用開(kāi)發(fā)的迅速發(fā)展.隨著3G網(wǎng)絡(luò)的不斷發(fā)展,位置信息服務(wù)及移動(dòng)互聯(lián)網(wǎng)的應(yīng)用普遍被業(yè)界看好[1],眾多研究單位把目光投向了移動(dòng)位置信息服務(wù),力求為廣大用戶提供更簡(jiǎn)單、更貼心、更個(gè)性化的手機(jī)應(yīng)用服務(wù).
基于位置的服務(wù)(Location Based Services,LBS)是指移動(dòng)通信運(yùn)營(yíng)商利用移動(dòng)設(shè)備的定位技術(shù)[2],獲得用戶的位置信息和用戶的上下文信息,從而提供個(gè)性化的服務(wù),其關(guān)鍵技術(shù)是移動(dòng)設(shè)備的定位技術(shù).目前,LBS定位采用的主流技術(shù)包括GPS衛(wèi)星定位、基站蜂窩移動(dòng)定位和無(wú)線局域網(wǎng)定位[3].GPS有極高的可用性和可靠性,定位精度高;移動(dòng)蜂窩網(wǎng)絡(luò)是目前覆蓋范圍最大的無(wú)線網(wǎng)絡(luò),定位受基站距離、信號(hào)強(qiáng)弱和測(cè)量誤差等影響.但隨著蜂窩網(wǎng)絡(luò)基礎(chǔ)設(shè)施的完善、移動(dòng)終端功能增強(qiáng),利用移動(dòng)蜂窩網(wǎng)絡(luò)定位被日益看重[4].無(wú)線局域網(wǎng)定位系統(tǒng)設(shè)施簡(jiǎn)單、覆蓋范圍廣、服務(wù)可集成度高,但因?yàn)槭芫嚯x限制主要用于室內(nèi)定位.通過(guò)對(duì)定位技術(shù)對(duì)比分析,本文設(shè)計(jì)開(kāi)發(fā)了一個(gè)基于GPS、移動(dòng)蜂窩網(wǎng)絡(luò)定位的智能商家導(dǎo)航系統(tǒng).本系統(tǒng)將Internet網(wǎng)絡(luò)資源的豐富性與移動(dòng)設(shè)備便攜性相結(jié)合,通過(guò)移動(dòng)智能設(shè)備為用戶提供方便、個(gè)性化的移動(dòng)位置信息服務(wù).這不僅符合信息服務(wù)發(fā)展的趨勢(shì),而且具有較好的市場(chǎng)應(yīng)用前景.
1商家導(dǎo)航系統(tǒng)架構(gòu)與設(shè)計(jì)方案
系統(tǒng)架構(gòu)圖如圖1所示.商家導(dǎo)航系統(tǒng)主要通過(guò)導(dǎo)航衛(wèi)星和移動(dòng)蜂窩網(wǎng)絡(luò)獲取移動(dòng)設(shè)備的位置信息服務(wù),在服務(wù)器端檢索周邊的特定商家、商品和活動(dòng)信息,并在客戶端根據(jù)商家坐標(biāo)計(jì)算距離遠(yuǎn)近,并根據(jù)距離顯示商家列表.系統(tǒng)同時(shí)提供了線路查詢、地圖導(dǎo)航等功能方便用戶快捷地找到商家,而當(dāng)用戶進(jìn)入特定商圈時(shí),啟動(dòng)廣告推送服務(wù)功能.
系統(tǒng)采用B/S架構(gòu),服務(wù)器端應(yīng)用PHP+MYSQL開(kāi)發(fā),負(fù)責(zé)基礎(chǔ)數(shù)據(jù)維護(hù),并在接收到客戶端通信連接請(qǐng)求和位置信息后,根據(jù)條件進(jìn)行信息檢索,并將檢索到的信息以XML文件形式反饋給客戶端.客戶端是基于Android平臺(tái)的智能設(shè)備,支持GPS定位,具有聯(lián)網(wǎng)功能,能隨時(shí)隨地提供位置信息服務(wù).客戶端主要有4個(gè)功能模塊:通信模塊,負(fù)責(zé)與服務(wù)器建立通信連接;數(shù)據(jù)封裝模塊,負(fù)責(zé)數(shù)據(jù)類(lèi)型、數(shù)據(jù)對(duì)象的定義和封裝;解析模塊,負(fù)責(zé)數(shù)據(jù)的解析處理;應(yīng)用模塊,負(fù)責(zé)應(yīng)用APP與用戶的交互.在軟件開(kāi)發(fā)模式上主要采用MVC模式,即模型(Model)、視圖(View)和控制器(Controller)[5],將數(shù)據(jù)處理和數(shù)據(jù)表現(xiàn)進(jìn)行分離,利用控制器負(fù)責(zé)模型和視圖的信息通信,控制應(yīng)用程序的流程,使程序結(jié)構(gòu)更加直觀.
圖1 商家導(dǎo)航系統(tǒng)架構(gòu)圖
考慮到移動(dòng)設(shè)備運(yùn)算能力、存儲(chǔ)能力的限制,軟件在數(shù)據(jù)存儲(chǔ)上設(shè)計(jì)了本地?cái)?shù)據(jù)和服務(wù)器數(shù)據(jù)存儲(chǔ)兩部分,如個(gè)人用戶信息、最近一次訪問(wèn)的數(shù)據(jù)信息等存儲(chǔ)在本地設(shè)備上,而服務(wù)器上存儲(chǔ)的是全部的用戶數(shù)據(jù)、商家數(shù)據(jù)、產(chǎn)品數(shù)據(jù)和活動(dòng)數(shù)據(jù)等,當(dāng)移動(dòng)設(shè)備在聯(lián)通網(wǎng)絡(luò)的情況下可以從服務(wù)器加載最新信息.
系統(tǒng)總體功能結(jié)構(gòu)設(shè)計(jì)如圖2所示.
圖2 系統(tǒng)總體功能結(jié)構(gòu)圖
2算法設(shè)計(jì)
移動(dòng)設(shè)備在獲取位置信息后,與服務(wù)器進(jìn)行交互,在數(shù)據(jù)庫(kù)中檢索出一定距離范圍內(nèi)的商家.由于在數(shù)據(jù)庫(kù)中保存的是每個(gè)商家的經(jīng)緯度,因此在信息檢索的過(guò)程中,需要實(shí)時(shí)計(jì)算移動(dòng)設(shè)備與商家之間的球面距離,從而篩選符合距離范圍的商家信息.
地球是一個(gè)橢球體,為了計(jì)算兩地的距離,一般應(yīng)將橢球面上兩地的大地坐標(biāo)按一定的規(guī)律投影到平面上[6],并以相應(yīng)的平面直角坐標(biāo)表示.目前世界各國(guó)常采用的是高斯投影.本系統(tǒng)對(duì)計(jì)算精度不做嚴(yán)格要求,忽略不同經(jīng)緯度上半徑的變化,假設(shè)地球是一個(gè)規(guī)則的圓球體,以地心為球心,半徑為R,移動(dòng)設(shè)備的經(jīng)緯度為T(mén)1(lat1,lon1),利用向量公式計(jì)算設(shè)備所在點(diǎn)的空間坐標(biāo)為:
(1)
若某商家的經(jīng)緯度為T(mén)2(lat2,lon2),應(yīng)用反三角函數(shù)求出T1和T2的夾角公式:
a=arccos(x1*x2+y1*y2+z1*z2)
(2)
再利用弧度的計(jì)算公式α/180*π*R,可求出兩點(diǎn)的最短距離為:
(3)
圖3 地球坐標(biāo)系統(tǒng)
3關(guān)鍵技術(shù)
作為控制與數(shù)據(jù)共享中心,服務(wù)器端主要負(fù)責(zé)數(shù)據(jù)維護(hù)以及與移動(dòng)設(shè)備的數(shù)據(jù)通信.其功能包括商戶注冊(cè)、登陸,并管理其場(chǎng)所信息、商品和活動(dòng)等信息.管理員管理商戶信息以及數(shù)據(jù)庫(kù)的管理.下面詳細(xì)介紹通信模塊的實(shí)現(xiàn).
客戶端將移動(dòng)設(shè)備當(dāng)前的位置的經(jīng)緯度(lat1,lon1)、商家類(lèi)別以及搜尋半徑r作為參數(shù),使用GET方式發(fā)送請(qǐng)求至服務(wù)器端進(jìn)行檢索處理,服務(wù)器端檢索符合類(lèi)別的所有商家,并根據(jù)公式(3)計(jì)算每個(gè)商家的經(jīng)緯度與請(qǐng)求參數(shù)中的經(jīng)緯度計(jì)算出兩者之間的距離,過(guò)濾掉不符合要求的商家,將符合要求的商家生成XML文件,作為對(duì)查詢結(jié)果的數(shù)據(jù)封裝返回給客戶端.
Android中解析XML主要有DOM、SAX和PULL三種方式.DOM提供了標(biāo)準(zhǔn)的解析方式,在解析XML時(shí),解析器需要讀入整個(gè)文檔并構(gòu)建一個(gè)駐留內(nèi)存的樹(shù)結(jié)構(gòu)(節(jié)點(diǎn)樹(shù))[7],才可以使用DOM的標(biāo)準(zhǔn)接口來(lái)操作這個(gè)樹(shù)結(jié)構(gòu),因此效率低下.SAX是一種XML解析的替代方法,讀取文檔時(shí)就能處理它,不必等待整個(gè)文檔被存儲(chǔ)之后才采取操作.PULL解析是在XML文檔中尋找想要的標(biāo)記,把需要的內(nèi)容讀入內(nèi)存,而不需要整個(gè)文檔都讀入內(nèi)存.這種方式比較適合手機(jī)等內(nèi)存有限的小型的移動(dòng)設(shè)備.本系統(tǒng)主要使用PULL方式解析數(shù)據(jù).
客戶端將用戶的位置、查詢半徑作為參數(shù),通過(guò)HttpURLConnection對(duì)象與服務(wù)器建立連接,向服務(wù)器發(fā)送一個(gè)uri請(qǐng)求,并獲取服務(wù)器響應(yīng)的數(shù)據(jù)流InputStream.InputStream對(duì)象代表了服務(wù)器返回的XML文件數(shù)據(jù)流,客戶端將此對(duì)象用XML解析器XmlPullParser進(jìn)行解析后獲得XML數(shù)據(jù),并把數(shù)據(jù)直接壓入Shop、Product等數(shù)據(jù)模型對(duì)應(yīng)的數(shù)據(jù)列表,交由前端頁(yè)面顯示獲得的結(jié)果.
Android系統(tǒng)的位置信息服務(wù)包括自我定位、地圖模式、線路查詢,并應(yīng)用Intent接收器實(shí)現(xiàn)了廣告推送,即以經(jīng)緯度和半徑劃定一個(gè)區(qū)域,當(dāng)設(shè)備出入該區(qū)域時(shí),發(fā)出活動(dòng)提醒信息.
Android位置信息服務(wù)分為兩部分:位置信息服務(wù)和地圖.位置信息服務(wù)API主要使用LocationManager來(lái)獲取設(shè)備的位置信息,追蹤設(shè)備的移動(dòng)路線或設(shè)定敏感區(qū)域.這個(gè)服務(wù)是按照“交互響應(yīng)式”來(lái)實(shí)現(xiàn)的,具體步驟是:
1)在Activity類(lèi)中通過(guò)getSystemService(Context.LOCATION_SERVICE)獲得LocationManager對(duì)象;
2)指定定位方法.主要有GPS定位和網(wǎng)絡(luò)定位. GPS定位一般可以提供比較精確的位置信息,但定位速度和質(zhì)量受到衛(wèi)星數(shù)量和環(huán)境情況的影響.網(wǎng)絡(luò)定位的位置信息精度較差,但速度較GPS定位快.
3)在指定LocationManager的定位方法后,調(diào)用getLastKnowLocation()方法獲取位置信息Location.用getLastKnowLocation()獲得的位置一般為上次位置,因此在應(yīng)用程序中一般使用requestLocationUpdates()注冊(cè)一個(gè)周期性的位置更新,在監(jiān)聽(tīng)位置變化時(shí)調(diào)用LocationListener,獲取當(dāng)前的位置信息Location.
4)從服務(wù)器讀取商家信息保存于ShopList列表.當(dāng)用戶選擇地圖瀏覽方式時(shí),系統(tǒng)調(diào)用MapView展示地圖圖層,同時(shí)在MyLocationOverlay圖層顯示移動(dòng)設(shè)備位置,而設(shè)備附近的商家主要應(yīng)用自定義圖標(biāo)顯示在ItemizedOverlay圖層上.當(dāng)用戶點(diǎn)擊這些自定義的圖標(biāo)時(shí),在PopupOverlay彈出窗圖層上用戶讀取到商家簡(jiǎn)介,同時(shí)調(diào)用路線規(guī)劃類(lèi)MKRoutePlan的getDistance方法,獲取路線距離.若用戶對(duì)該商家有意向,可以點(diǎn)擊路線導(dǎo)航按鈕,在RouteOverlay圖層查看導(dǎo)航路線.
4系統(tǒng)測(cè)試結(jié)果
在開(kāi)通2G網(wǎng)絡(luò)情況下,對(duì)上述系統(tǒng)進(jìn)行了現(xiàn)場(chǎng)測(cè)試.測(cè)試中,客戶端為三星I9300智能手機(jī).測(cè)試結(jié)果表明,整個(gè)系統(tǒng)運(yùn)行穩(wěn)定.特別是在開(kāi)啟GPS時(shí)定位速度快,地圖數(shù)據(jù)正確,達(dá)到了預(yù)期的使用效果.商家列表和商家地圖畫(huà)面分別如圖4和圖5所示.
圖4 商家列表
圖5 商家地圖瀏覽圖
5結(jié)語(yǔ)
本文使用“交互響應(yīng)式App”軟件開(kāi)發(fā)方法,利用PHP和Android開(kāi)發(fā)環(huán)境設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)移動(dòng)式商家導(dǎo)航系統(tǒng).實(shí)踐證明,這個(gè)系統(tǒng)具有較高的穩(wěn)定性和可靠性.這個(gè)系統(tǒng)的使用充分體現(xiàn)了基于位置信息服務(wù)的移動(dòng)增值業(yè)務(wù)的價(jià)值.隨著3G、4G移動(dòng)網(wǎng)絡(luò)傳輸速度和智能移動(dòng)設(shè)備性能的提高,移動(dòng)位置信息服務(wù)必將具有廣闊的運(yùn)用前景.
[參考文獻(xiàn)]
[1]黃志勇,趙霽.基于Android平臺(tái)的移動(dòng)位置信息服務(wù)開(kāi)發(fā)研究[J].自動(dòng)化技術(shù)與應(yīng)用,2011,30(12):22-26.
[2]唐科萍,許方恒,沈才梁.基于位置服務(wù)的研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2012,29(12):4432-4436.
[3]呂品,李瑞敏,王雨陽(yáng).基于位置服務(wù)的智能化出租車(chē)調(diào)度系統(tǒng)研究[J].交通信息與安全,2012,30(5):113-116.
[4]趙勛.基于地理位置服務(wù)的商圈建模方法[J].沈陽(yáng)大學(xué)學(xué)報(bào):自然科學(xué)版,2013, 25(6):485-491.
[5]胡揚(yáng)帆,楊剛,胡顥石.結(jié)合LBS和信息推送的博物館APP的設(shè)計(jì)實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(12):108-112.
[6]公磊.基于Android的GPS測(cè)量系統(tǒng)開(kāi)發(fā)[D]. 南昌:南昌大學(xué),2008.
[7]姚建輝,宋建農(nóng).基于XML的數(shù)據(jù)管理探索[J].邢臺(tái)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005, 23(2):39-41.
(責(zé)任編輯穆剛)
Research and application on the technology of the
location-based services
LI Lizheng
(College of Information Engineering, Shaoxing Vocational & Technical College, Shaoxing Zhejiang 312000, China)
Abstract:According to the characteristics of the scattered new city businesses and asymmetric information, the paper makes full use of the advantages of the application of the mobile platform which is the location-based services from the perspective of the software design and development. It focuses on the location-based services and the interaction with Internet. Meanwhile, the applications of Baidu map API achieve the navigation function. The result of the experiment validates that this application is feasible, convenient and has greater useful value.
Key words:location based on services; MVC; application of interactive response
[中圖分類(lèi)號(hào)]TP311.52
[文獻(xiàn)標(biāo)志碼]A
[文章編號(hào)]1673-8004(2015)05-0117-04
[作者簡(jiǎn)介]李利正(1979—),女,浙江紹興人,講師,碩士,主要從事數(shù)字媒體、算法分析方面的研究.
[基金項(xiàng)目]紹興職業(yè)技術(shù)學(xué)院2013學(xué)年科研計(jì)劃項(xiàng)目(201343).
[收稿日期]2015-01-28