1. 程式人生 > >具體解釋Android定位

具體解釋Android定位

開放 代碼 相對 ugui cin get 使用 項目 能夠

相信非常多的朋友都有在APP中實現定位的需求,今天我就再次超炒冷飯,為大家獻上國內開發人員經常使用到的三種定位方式。它們分別為GPS,百度和高德,慣例先簡介下定位的背景知識。

什麽是GPS定位、基站定位和Wi-Fi定位?

1、GPS定位:依據設備GPS芯片和GPS衛星實現定位,GPS定位在室內是不能夠使用的。GPS定位精度和芯片本身以及實際使用環境有關,普通情況下。GPS定位精度在10m左右。

2、基站定位:依據設備獲取的基站信息實現定位,基站定位精度一般不受使用環境影響。主要和基站的覆蓋半徑有關。

基站定位服務精度眼下在200m左右。

3、Wi-Fi定位:依據設備獲取的Wi-Fi的信息進行定位,Wi-Fi定位精度一般不受使用環境影響,主要和Wi-Fi半徑,密度有關。Wi-Fi定位精度眼下在20m左右。

眼下智能手機都內置了GPS芯片,相相應的各個手機系統廠商也開放了對外的GPS接口。可是因為GPS受外界因素影響比較大。一般的APP也都是室內使用,所以嚴重影響到了GPS搜星的數量。只是曾經在外包公司接手過這麽一個項目,主要面向室外的騎行愛好者使用,滿足他們騎行路線的繪制。面對這樣一個需求。GPS定位是最靠譜的選擇了,可是傷不起的耗電量呀。

所以一般比較靠譜的方式,就是使用百度高德這些企業為開發人員提供的成熟方案,能夠選擇混合定位的方式以應對APP復雜的實際使用情況。混合定位就是使用以上三種定位技術,選擇最優的方式去獲取當前的地理位置。以下來介紹下今天為大家帶來的簡單實踐。

一、GPS定位

技術分享

技術分享

技術分享

沒有特別的業務需求。請慎用GPS定位,選用NETWORK_PROVIDER是個不錯的選擇。另外。大家有沒有發註意到,通過GPS能夠獲取當前時間,在獲取不到準確時間的時候是個不錯的選擇。

2、百度定位

技術分享

技術分享

技術分享

百度定位的location裏包括了非常多的信息。足以應付我們工作的須要了。

百度定位Jar包大小180Kb,相對來說還是能夠接受的。

百度的三種定位策略也正好是相應上述我們背景介紹的三種定位技術。

三、高德定位

技術分享

技術分享

技術分享

高德定位回調的位置信息也是比較豐富的,並且依賴包大小140kb。一般我工作中定位都是用高德。

備註:通過Android系統的LocationManager去定位也是滿靠譜的,室外需求使用GPS provider,室內使用Network provider;定位的經度和效率也是能夠接受的,並且還不用依賴第三方包。不會添加程序的體積。

可是非常多業務情形下。我們不止想得到簡單的經緯度信息,我們還須要城市、郵編、詳細的位置等信息。

代碼地址:https://github.com/JackCho/LocationDemo

假設認為對你有所幫助,歡迎大家訂閱我的微信公眾賬號——Android幹貨分享(ID:android_share)

以下是微信的二維碼,為你提供及時高質的Android幹貨。技術交流QQ群:318588906,歡迎大家加群,共同探討下Android和Java技術,一起壯大我們的微信幹貨分享社區。

技術分享

具體解釋Android定位