査金超,王直杰
(1.東華大學(xué)信息學(xué)院,上海,200000;2.東華大學(xué)信息學(xué)院,上海,200000)
基于GPS及LBS的移動(dòng)終端定位研究
査金超1,王直杰2
(1.東華大學(xué)信息學(xué)院,上海,200000;2.東華大學(xué)信息學(xué)院,上海,200000)
本文主要介紹了一種可移動(dòng)終端的定位方案,如航行的船只,移動(dòng)的車輛。方案主要基于GPS和LBS理論,并以硬件終端為載體,android系統(tǒng)為平臺(tái)。分析了兩種定位方法的原理及定位方案的設(shè)計(jì)流程。最終實(shí)現(xiàn)對(duì)可移動(dòng)終端的定位和監(jiān)控。
GPS;LBS;移動(dòng)定位
近年來,基于移動(dòng)定位技術(shù)的定位服務(wù)發(fā)展迅速,涉及商務(wù)、醫(yī)療、旅游以及生活的其他各個(gè)方面。專門的移動(dòng)定位系統(tǒng)還可以用來對(duì)人員、物體和事件進(jìn)行定位,以滿足移動(dòng)辦公、移動(dòng)執(zhí)法、運(yùn)輸物流和旅游導(dǎo)航等領(lǐng)域的定位需求。它主要通過獲取移動(dòng)終端用戶的位置坐標(biāo)信息實(shí)現(xiàn)定位服務(wù),其中包含了移動(dòng)通信和定位導(dǎo)航等多種技術(shù)。本文主要介紹的是基于android平臺(tái)下兩種使用范圍最廣和使用頻率最高的定位技術(shù),一種是基于GPS的定位技術(shù),一種是基于移動(dòng)運(yùn)營(yíng)網(wǎng)絡(luò)的LBS基站定位技術(shù)。
圖1 GPS定位的幾何關(guān)系
GPS即Global Positioning System,全球定位系統(tǒng)的簡(jiǎn)稱。主要利用的是全球覆蓋率高達(dá)98%的24顆定位衛(wèi)星,能夠?yàn)槿蛴脩籼峁┑统杀尽⒏呔鹊娜S位置、移動(dòng)速度和導(dǎo)航信息。它主要分為兩種,一種是指觀測(cè)點(diǎn)相對(duì)于地球坐標(biāo)系地球質(zhì)心的位置,進(jìn)而又稱單點(diǎn)定位;另一種則是相對(duì)于地球表面的參考點(diǎn)的位置。下文中主要使用的是絕對(duì)定位,在這種定位過程中,待測(cè)目標(biāo)處于運(yùn)動(dòng)的被稱為動(dòng)態(tài)定位,處于靜止?fàn)顟B(tài)的則稱為靜態(tài)定位。GPS定位是通過觀測(cè)GPS衛(wèi)星而獲得特定的觀測(cè)量來實(shí)現(xiàn)的,這些觀測(cè)量包含碼相位、載波相位和積分多普勒計(jì)數(shù)。下文中主要介紹一種在實(shí)際操作中經(jīng)常使用的基于碼相位觀測(cè)得出的偽距法以及何為碼相位觀測(cè)量。這種定位方法主要由被測(cè)對(duì)象在某一時(shí)刻獲取距離四顆及以上衛(wèi)星的值和他們的位置,然后運(yùn)用交匯的原理,求得被測(cè)對(duì)象位置的坐標(biāo)值。它雖然定位精度不高,但定位速度快,且無多值性問題,這得益于這種方法的運(yùn)算量比較小,運(yùn)算邏輯簡(jiǎn)單,具體的計(jì)算流程如下圖1所示:
在上式中,如果衛(wèi)星和接收機(jī)的時(shí)鐘是同步的,那么求出來的結(jié)果就是基站到衛(wèi)星的實(shí)際距離。為偽距,為真正幾何距離,為接收機(jī)和衛(wèi)星之間鐘差?,F(xiàn)實(shí)中,我們一般可以從衛(wèi)星發(fā)播的電文中獲得任一衛(wèi)星的時(shí)鐘差,通過改正,基本可以保證衛(wèi)星之間保持在20ns內(nèi)的同步時(shí)間差。如果忽略衛(wèi)星之間鐘差影響,并考慮電離層、對(duì)流層折射影響,可得:
式中(Xs,Ys,Zs)可根據(jù)衛(wèi)星導(dǎo)航電文求得,因此式中只有接收機(jī)坐標(biāo)是未知量。當(dāng)然,電離層改正數(shù)和對(duì)流層改正數(shù)可以按照一定的模型求解出,所以如果將接收機(jī)鐘差也作為未知數(shù),那么共有四個(gè)未知數(shù)。因此,接收機(jī)必須同時(shí)至少測(cè)定四顆衛(wèi)星的距離才能解算出接收機(jī)的三維坐標(biāo)值。一般情況下測(cè)碼偽距觀測(cè)方程如下:
式中j為衛(wèi)星數(shù),j=1,2,3…。
LBS(Location Based Service),基于位置的服務(wù)。一種通過電信、移動(dòng)運(yùn)營(yíng)商的無線電通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(如GPS)獲取移動(dòng)終端用戶的位置信息(地理坐標(biāo),或大地坐標(biāo))的定位技術(shù)。主要包括GSM三點(diǎn)定位原理和CDMA四點(diǎn)定位原理。
三點(diǎn)法定位原理如下圖2所示,選取GSMOA、OB、OC;根據(jù)移動(dòng)基站與監(jiān)測(cè)點(diǎn)的距離計(jì)算公式:
L=TA×500+RxL×M+TxPwr×N和地球表面任意兩點(diǎn)的距離公式:
得:
OA=TA(A)1×500+RxL(A)×M+TxPwr(A)×N;
OB=TA(B)1×500+RxL(B)×M+TxPwr(B)×N;
OA=TA(C)1×500+RxL(C)×M+TxPwr(C)×N;
AB=L1(A,B);AC=L1(A,C);BC=L1(C,B);
式中,TA為時(shí)間前置量,范圍為0-63;RxL是信號(hào)接收強(qiáng)度,單位為dB m;TxPwr顯示的是通話中手機(jī)的功率發(fā)射強(qiáng)度,顯示范圍為0-19;M為射頻信號(hào)衰減系數(shù);N為發(fā)射功率衰減系數(shù);K為地球半徑,(A1,A2),(B1,B2)分別為A、B兩點(diǎn)的經(jīng)緯度。
四點(diǎn)定位不同于GSM三點(diǎn)定位,它是以CDMA基站為圓心,在近似認(rèn)為以基站為圓心的圓線上的信號(hào)強(qiáng)度相等的假設(shè)下,取兩組共四個(gè)觀測(cè)點(diǎn),如圖3所示。對(duì)于平面上的兩條相交線 ,我們通??梢酝ㄟ^求解線性方程的方法來得到交點(diǎn)的坐標(biāo)值。在實(shí)際運(yùn)用過程中,雖然待求點(diǎn)處于一個(gè)球面上,但考慮到監(jiān)測(cè)面積相對(duì)于地球來說比例很小,我們可以近似地把它看作XY平面,將經(jīng)緯度信息看成是平面上的坐標(biāo)值,這樣就可以通過求解線性方程解得監(jiān)測(cè)點(diǎn)的坐標(biāo)值,下面給出求解結(jié)果:
圖2 三點(diǎn)定位示意圖
圖 3 四點(diǎn)定位示意圖
Android位置服務(wù)
LocationManager和LocationProvider是Android平臺(tái)下的兩個(gè)接口類,它們主要用來支持定位服務(wù)。前者用來獲取當(dāng)前的位置,后者則是提供定位功能的組件集合。接下來將詳細(xì)介紹android平臺(tái)下獲取移動(dòng)端位置信息的具體設(shè)計(jì)流程。
首先,我們需要通過調(diào)用android.app.
Activity.getSystemService()函數(shù)來獲取
LocationManager對(duì)象,獲取到以后還需要指定對(duì)象的定位方法,然后才能調(diào)用
LocationManager.getLastKnowLocation()方法
獲取當(dāng)前位置。所謂的定位方法就是我們上文提到的GPS定位和網(wǎng)絡(luò)定位(主要利用基站或者WIFI定位)。前者需要終端開放
android.permissions.ACCESS_FINE_LOCATION權(quán)限,后者需要
android.permission.ACCESS_COARSE_LOCATION用戶權(quán)限。其中需要注意的是使用GPS定位和網(wǎng)絡(luò)定位的LocationManager類的靜態(tài)常量不相同,前者使用的LocationManager類的靜態(tài)常量為:GPS_PROVIDER,后者使用的LocationManager類的靜態(tài)常量為:
NETWORK_PROVIDER,這兩個(gè)靜態(tài)常量在獲取當(dāng)前位置時(shí)要用到。下面以使用GPS定位為例,獲取移動(dòng)終端的具體代碼如下:
String provider = LocationManager.GPS_PROVIDER;
Location location = locationManager.getLastKnownLoc ation(provider);然后通過調(diào)用Location中的getLatitude()和getLonggitude()方法可以分別獲取位置信息
中的緯度和經(jīng)度,代碼如下:
doublelat = location.getLatitude();
doublelng = location.getLongitude();
在很多提供定位服務(wù)的應(yīng)用程序中,不僅需要獲取當(dāng)前的位置信息,還需要監(jiān)視位置的變化,在位置改變時(shí)調(diào)用特定的處理方法 ,其中LocationManager提供了一種便捷、高效的位置監(jiān)視方法requestLocationUpdates(),可以根據(jù)位置的距離變化和時(shí)間間隔設(shè)定,產(chǎn)生位置改變事件的條件,這樣可以避免因微小的距離變化而產(chǎn)生大量的位置改變事件 ,
LocationManager中設(shè)定監(jiān)聽位置變化的代碼如下:
locationManager.requestLocationUpdates(provider,200 0,10,locationListener);
在上面的函數(shù)表達(dá)式中,共有四個(gè)參數(shù)。它們都有各自的意義,provider代表的是定位方法,可以選擇GPS定位或者網(wǎng)絡(luò)定位;后面的兩個(gè)數(shù)字分別表示的是時(shí)間和距離,前者指的是產(chǎn)生改變時(shí)間所需的時(shí)間間隔,后者表示產(chǎn)生的距離條件;最后一個(gè)參數(shù)代表的是回調(diào)函數(shù),相當(dāng)于LocationListener監(jiān)聽器,主要用來處理位置改變事件??偟膩碚f,那一行代碼將產(chǎn)生位置改變事件的條件設(shè)定為距離改變10米,時(shí)間間隔為2秒。
接下來對(duì)上面實(shí)現(xiàn)LocationListener的代碼下的四個(gè)方法進(jìn)行簡(jiǎn)單介紹:
onLocationChanged()這個(gè)方法在位置改變時(shí)被調(diào)用,onProviderDisabled()這個(gè)方法在用戶禁用具有定位功能的硬件時(shí)被調(diào)用,onProviderEnabled()這個(gè)方法在用戶啟用具有定位功能的硬件時(shí)被調(diào)用,onStatusChanged()這個(gè)方法在定位功能硬件狀態(tài)改變時(shí)被調(diào)用,例如,從不可獲取位置信息狀態(tài)到可以獲取位置信息的狀態(tài),反之亦然 。最后還需要在
AndroidManifest.xml這個(gè)文件中加入下面這行代碼,表示給用戶添加許可權(quán)限,這樣就能夠調(diào)用GPS定位功能了:
<uses-permission android:name="android.permission. ACCESS_FINE_LOCATION">
</uses-permission>
這樣即完成了代碼,就可以顯示當(dāng)前位置信息,并能夠監(jiān)視設(shè)備的位置變化。
上文中介紹了在android平臺(tái)下使用GPS定位和網(wǎng)絡(luò)定位兩種方法監(jiān)控可動(dòng)終端位置信息的技術(shù)方案。在一定誤差范圍內(nèi),不僅可以得到監(jiān)控對(duì)象的位置,還可以求解對(duì)象的動(dòng)軌跡,大大提高了監(jiān)控調(diào)度作業(yè)的工作效率。但方案也存在不足,比如在使用網(wǎng)絡(luò)定位時(shí)僅使用了基于基站的定位方法,理論上還可以使用基于WIFI、IP的混合定位方案,可以大大提高定位的精度。后續(xù)也可以和GIS電子地圖系統(tǒng)集成開發(fā)成一套完整的電子監(jiān)控系統(tǒng),這樣就可以將理論知識(shí)運(yùn)用于實(shí)踐,大大提高了本套方案的實(shí)用性。
[1] 黃瀟婷,柴彥威.面向LBS使用者的時(shí)間地理學(xué)研究評(píng)價(jià).地理科學(xué)進(jìn)展,2009,28(6):962-969.
[2] 施滸立,呂子平,鄧中亮等.由通信廣播衛(wèi)星信號(hào)輔助的地面移動(dòng)通信網(wǎng)定位方法:中國(guó),201010143009.2[P].2011-10-12.
[3] 吳偉:GSM/UMTS移動(dòng)位置業(yè)務(wù)的技術(shù)與實(shí)現(xiàn),http:// www.c114.net/zhanhui/2003/3G031030/paper32. html.
[4] 范平志等.蜂窩網(wǎng)無線定位.北京:電子工業(yè)出版社,2002.
[5] Elliott D.Kaplan, Understanding GPS Principles and Application, 北京:電子工業(yè)出版社,2002.
査金超(1991-),男,碩士,研究生,主要研究方向:智能網(wǎng)絡(luò)優(yōu)化.
王直杰(1969-),男,博士,教授,主要研究方向: 神經(jīng)網(wǎng)絡(luò)理論與應(yīng)用,復(fù)雜網(wǎng)絡(luò)系統(tǒng)建模與仿真,智能計(jì)算與智能系統(tǒng),數(shù)據(jù)挖掘技術(shù),數(shù)字化紡織服裝技術(shù).
Position design of mobile terminal based on GPS and LBS
Zha Jinchao1,Wang Zhijie2
(1.Donghua University,Shanghai,200000,China;2.Donghua University,Shanghai,200000)
This paper mainly introduces a kind of mobile terminal positioning design,such as the sailing ships,the moving vehicle.The design is mainly based on the theory of GPS and LBS,and using the hardware terminal as platform,using the android system as tool.Then we analyze the two kinds of position methods principle and the process of position design. Finally we realize the positioning and monitoring of mobile terminal.
GPS;LBS;mobile positioning
TN91
A