您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在Android中解決原生定位,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
簡單了解下:
GPS_PROVIDER:
通過手機內置的GPS芯片,利用衛星獲取定位信息。位置監聽、衛星狀態監聽很耗電且室內定位很不準確。
NETWORK_PROVIDER:
網絡定位通過基站和WiFi節點,利用節點id在定位數據服務器查詢位置信息。但是國內網絡不允許,且有消息稱Google已不提供該服務。so網上出現的此種方式獲取定位信息不可用,也就是說NETWORK_PROVIDER在國內不可用。
PASSIVE_PROVIDER:
被動定位,其他應用比如百度、高德等使用了定位,系統會更新定位信息并保存下來,通過此方式可以獲取最近一次的位置信息。
第三方SDK當然好用了,但是要注意獲取的經緯度是經過了偏移的,只適配自己的地圖。比如用百度地圖SDK獲取的經緯度在百度地圖上是準確的,在高德地圖上顯示可能就會有一定的偏差。如果經緯度和地圖不是成套使用就要考慮偏移的情況,而不是獲取的經緯度不準確。第三方SDK都有自己的網絡定位數據,他們的網絡定位不僅僅是依靠服務器查詢,還有一套算法支撐,所以室內定位比較準確。
有些項目不使用第三方SDK,只能用原生方法獲取定位。NETWORK_PROVIDER 被迫放棄,PASSIVE_PROVIDER 只能是輔助,GPS_PROVIDER 需要增加精度。
1. addGpsStatusListener 監聽衛星狀態,當信號值 > 1 的衛星數量在4顆以上,才可以使用 GPS_PROVIDER;
2. 速度>0.5 且 精度 < 50 才會被認為是有效的經緯度數據(我的項目中設備是移動的)。
補充:使用Android自帶api定位失敗的原因
前奏:使用高德百度等定位,集成那么麻煩。為何不使用android自帶的api進行定位。省時省力?
但是,問題來了。
位置提供者就兩種方式,要么network,要么gps.
上述內容就是如何在Android中解決原生定位,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。