1. 程式人生 > >Android 定位之百度地圖定位 問題總結

Android 定位之百度地圖定位 問題總結

之前做百度地圖定位這個功能,碰到的問題非常多,這裡總結一下,百度地圖官方文件裡面解釋的很清楚,現在百度定位採用的是GPS,基站,Wi-Fi等多種定位方式,適用於室、內外多種定位場景,但是這個優先順序我們是可以調整的。

1.定位方式  是gps優先還是 基站定位優先

option.setPriority(LocationClientOption.NetWorkFirst); // 設定網路優先

option.setPriority(LocationClientOption.GpsFirst); //設定gps優先

2.定位環境  有網定位 無網路定位

百度地圖中如果你將定位設定為  gps優先,這個即使你的手機無法聯網並且不插電話卡也是可以定位出座標的(肯定是可以的)。

無網路 定位模式下,不需要連線網路,只使用GPS進行定位,但是這種模式下不支援室內環境的定位。在室內基本是肯定獲取不到座標的,我測試過。

而且這個就算是在室外  可能也要等1—3分鐘不等才能拿到值(和手機機型裝置有關,後面會具體講到)。 注意:還有一種特殊情況就是 ----在有網路的情況下將定位方式設定為 gps優先,這種情況會很快的獲取到座標,但是這個座標是 返回 的基站座標 所以誤差比較大。 有的人想問設定的gps優先 為什麼返回的是基站座標呢? 跟大家說一下 ,這個問題我專門諮詢過百度地圖定位sdk設計人員(偶然認識,加的qq),他說是這樣的:因為gps定位需要時間較長, 所以在有網路連線的狀態下, 會先將附近的基站座標返回給使用者,然後等gps初始化好以後再將 gps定位出來的座標返回給使用者。所以這種情況下  你測試的時候會發現,開始座標誤差比較大,慢慢誤差會變小,就是這個原理。

3.定位誤差問題

基站精度為平均200米左右,視運營商基站覆蓋範圍而定。WIFI精度為20米左右。GPS精度最高,為10米左右(取決於晶片)。在戶外,先開啟GPS再進行定位,結果較準。但GPS比較費電,且在室內不可用。

另外,&addr=detail 想要獲取完整地址(詳細到門牌號),或者&addr=rough 想要獲得到城市一個級別的地址(比如返回中國北京北京); 

上面這段是百度官方文件裡面的解釋:  這個我 在做的時候基本是這種情況, 文件裡面提到的 精度取決於晶片的問題,其實就是不同手機裝置的差異。這個我專門做過測試,我用了5臺手機測試:   htc one ,三星I9118,htc t328w,紅米1s,聯想a820 。 這

5臺手機在室外同一個位置百度地圖定位獲取 經緯度座標,測試結果是:

htc one 誤差2-3米 有時候是0-1米  非常精確了相對來說,htc t328w 紅米1s,聯想 都是 15-30米左右,三星那個機型稍微差點  定位速度不僅慢,而且誤差也較大  誤差有時候是200多米,穩定後也是80米左右。這個穩定的意思是 ,gps初始化需要時間的,一般要2-3分鐘以後,誤差範圍的數字會越來越小。

獲取誤差範圍的方法是:BDLocation類下的方法  location.getRadius();//獲取定位精度

上面是我的一部分總結 ,沒寫完,有點多。後面的再補上,大家如果做百度地圖這塊有啥問題,咱們可以互相交流。評論我能看到!

相關推薦

Android 定位地圖定位 問題總結

之前做百度地圖定位這個功能,碰到的問題非常多,這裡總結一下,百度地圖官方文件裡面解釋的很清楚,現在百度定位採用的是GPS,基站,Wi-Fi等多種定位方式,適用於室、內外多種定位場景,但是這個優先順序

Android開發地圖定位以及簡單覆蓋物的實現

直接上程式碼: 先看下效果圖: 我這裡主要做了三個功能: 1.一秒鐘實時定位功能; 2.新增任意經緯度地點到地圖上; 3.判斷朝陽門是否在本人定位範圍1000米內; 百度地圖初始化方法: DemoApplication.java package com

Android studio3.0對於地圖api開發(2)——地圖定位指定地點以及地圖型別的變換

      承接上一篇文章寫的,https://blog.csdn.net/qq_41562408/article/details/82794772已經實現了百度地圖的工具準備以及基本的地圖顯示,不過就一個地圖應用來說,只是單純的顯示一種地圖型別以及只是能夠定位到天安門其他地

Android studio3.0對於地圖api開發(3)——地圖定位當前地點以及地圖覆蓋物簡介

   承接上文,上文已經實現了按照緯經度進行地點的定位以及不同地圖型別的切換,https://blog.csdn.net/qq_41562408/article/details/82802082但是就我們普通使用者的需求來說,這遠遠不夠。使用者更希望能夠直接顯示自己的當前位置

IOS地圖定位總結

#pragma mark 註冊百度地圖 - (void)reguestBaiduMap {     // 要使用百度地圖,請先啟動BaiduMapManager     mapManager = [[BMKMapManager alloc]init];     BOOL ret = [mapManager

android 地圖定位不准問題

1、你要用百度地圖的定位座標,否則是有偏差的 2、你通過 BDLocation location 獲取座標系的時候,你看看你的 LocationClientOption option = new

Android 地圖定位半徑圈範圍自定義

專案需求百度定位的半徑為500米,但是載入下來後的定位半徑為100米(預設大小)。 查詢了好久資料才發現,原來這個所謂的半徑圈表示百度地圖的半徑誤差值大小。 在百度地圖的API中,BDLocationListener,定位的返回監聽事件中設定即可。 locData.dire

【MUI】地圖定位功能

scom 需要 read rto code lan containe convert marker 博主最近進行一款APP開發,需要用到定位功能,經過一番折騰,終於搞定,不廢話,代碼如下 mui.plusReady(function() {

微信企業號開發:微信考勤地圖定位,錯誤修正二

ipp ons AC 信息 解釋 企業號 android bsp ner 在之前的博客中微信企業號開發:微信考勤百度地圖定位,錯誤修正介紹了一種修正百度地圖錯誤的方法

JavaScript--地圖定位,可拖拽

event 控件 int pla location view api 事件 ont <html> <head> <meta http-equiv="Content-Type" content="text/html; char

地圖定位失敗162問題

http inf bubuko 百度 img 刪掉 。。 .so 程序 今天突然要改程序,發現之前寫的定位的一直返回4.9E-324.百度文檔說是因為.so包的問題,但是看來半天我有.so包啊!為什麽還不行。。。。。沒有編譯 ,一開始我直接復制的文檔裏的這個放上去後還是不行

地圖-定位不準的問題

情況描述:用百度定位做的打卡功能,用資料流量定位,華為小米手機能成功定位當前位置,換個品牌手機,定位位置偏差到旁邊200m外的小區 資料參考  上面這段是百度官方文件裡面的解釋:  這個我 在做的時候基本是這種情況, 文件裡面提到的 精度取決於晶片的問題,其實就是不同手機

Android學習筆記地圖(駕車路線搜尋及RouteOverlay步行路線搜尋及RouteOverlay)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

wex5 如何利用 地圖 定位 和 天氣外掛

引包: require("cordova!cordova-plugin-geolocation"); require("cordova!com.justep.cordova.plugin.baidulocation");     Model.prototy

webview中巢狀html實現精準定位地圖、高德地圖、騰訊地圖、H5原生定位)js對比

最近在實現一個功能,就是在安卓手機和蘋果手機嵌入html程式碼,實現精準定位,我為此對比幾種定位的方法。我要的是精準定位,就是誤差在100米左右的功能,類似與外賣app那種定位精確度 1. 首先是原生h5定位 if(browser.versions.an

地圖定位顯示

//單個地圖顯示 <html> <head>     <title>百度地圖</title>   <script src="http://api.map.baidu.com/api?v=1.4" type="

地圖定位開發流程

 百度地圖是我們日常生活中必不可少的,他能幫助我們找到自己想去的地方,方便出行等等。  下面我就來介紹一下怎樣去使用百度地圖來實現自定位功能,跟著我的思路往下走。。。。。。 選中導航欄的開發文件再點開Android定位SDK,再根據官網的流程講解,一步一步的跟著他

Android學習筆記地圖(周邊檢索poiSearchNearBy跳轉頁面並輸出搜尋結果)

                package xiaosi.baiduMap;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import com.baidu.map

4.07關於定位與高德

問題描述:繪製軌跡時,雖然有getAlatitude方法,但是獲取到的高程為0,導致進行顯示軌跡要素被覆蓋 解決方案:人為的設定一個高程,比如100,保證能夠正常顯示 for (int j = 0; j < routePoints.length; j++) {

安卓開發關於地圖定位返回經緯度4.9E324引數 解決方案

百度地圖提供的sdk開發包搞不好就被坑了. Android機型適配不夠好,部分手機能夠定位有些手機不能定位!!!!! 用百度定位的時候一直定位不到,拿到的經緯度都是4.9E-324,Google了一下,發現不少人出現這個問題,經過一番研究,最終解決了這個問題。 目