LocationManager(一)-定位方式原理解析
參考資源:android 4種定位原理及實現——1
android使用不同的方法為應用提供位置信息。
定位的方式有三種:GPS地位(A-GPSAssistedGPS:輔助全球衛星定位系統,或者是同步GPS(S-GPS)),網絡定位,被動獲取定位信息(應用不必顯示從LocationManager請求位置更新信息,就能獲取位置數據。即從其他應用中獲得請求得到的位置信息)
這些信息成為信息提供者LocationProvider
Android中定義的位置提供者
- 網絡定位NETWORK_PROVIDER
- GPS定位GPS_PROVIDER
- 被動定位PASSIVE_PROVIDER
組合定位FUSED_PROVIDER(這個是被隱藏的變量,不能直接使用,好像我都沒有遇見過哦*~*)
GPS定位利用多個衛星至GPS接收器的距離,使用三角定位確定當前的位置,最少需要三個衛星才可以確定一個二維的位置(經度和緯度)。
如果和更多的衛星通信,GPS接收器可以確定如海拔信息(雖然海拔確定的不準確。。。。)等更多位置信息
優點:提供精確的位置數據
GPS缺點:定位時間較長,耗電,GPS接收器在看不到天空的地方無法使用,所以在室內定位出錯
A-GPS:通過移動網絡將GPS歷書(星歷的集合:接收到的衛星的位置信息的集合)和其他信息傳輸到移動設備。即基站代送信息到移動設備。這使得gps在室內 也可以使用
網絡定位:
- 使用無線網絡WiFi接入點提供位置信息---比GPS硬件更省電
1、每一個無線AP(路由器)都有一個全球唯一的MAC地址,並且一般來說無線AP在一段時間內不會移動;
2、設備在開啟Wi-Fi的情況下,即可掃描並收集周圍的AP信號,無論是否加密,是否已連接,甚至信號強度不足以顯示在無線信號列表中,都可以獲取到AP廣播出來的MAC地址;
3、設備將這些能夠標示AP的數據發送到位置服務器,服務器檢索出每一個AP的地理位置,並結合每個信號的強弱程度,計算出設備的地理位置並返回到用戶設備;
4、位置服務商要不斷更新、補充自己的數據庫,以保證數據的準確性。
基站定位
第一種基站定位和GPS類似使用三角定位。移動設備通過電磁波在三個基站中轉所需時間計算出設備所在坐標(基站的位置是固定的)
第二種則是利用獲取最近的基站的信息,其中包括基站 id,location area code、mobile country code、mobile network code和信號強度,將這些數據發送到google的定位web服務裏,就能拿到當前所在的位置信息,誤差一般在幾十米到幾百米之內。其中信號強度這個數據很重要。
被動定位
這個是在前兩者基礎上通過其他應用使用前兩種方式傳送位置數據到當前應用
LocationManager(一)-定位方式原理解析