百度地圖API 定位功能實現中需要注意的幾點


1.BMapManager 初始化在setViewContent之前 否則會報錯

2.在application標簽中聲明service組件,每個app擁有自己單獨的定位service

<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
</service>

3.初始化LocationClient類時需要注意:LocationClient類必須在主線程中聲明。需要Context類型的參數。

Context需要時全進程有效的context,推薦用getApplicationConext獲取全進程有效的context

public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
 
public void onCreate() {
    mLocationClient = new LocationClient(getApplicationContext());     //聲明LocationClient類
    mLocationClient.registerLocationListener( myListener );    //注冊監聽函數
}

 

4.BDLocationListener接口有2個方法需要實現: 1.接收異步返回的定位結果,參數是BDLocation類型參數。 2.接收異步返回的POI查詢結果,參數是BDLocation類型參數。

5.發起定位:public int requestLocation()

發起定位,異步獲取當前位置。因為是異步的,所以立即返回,不會引起阻塞。定位結果在ReceiveListener的方法OnReceive方法的參數中返回。

需要注意:當定位SDK從定位依據判定,位置和上一次沒發生變化,而且上一次定位結果可用時,則不會發起網絡請求,而是返回上一次的定位結果。 返回值:

  • 0:正常發起了定位。
  • 1:服務沒有啟動。
  • 2:沒有監聽函數。
  • 6:請求間隔過短。 前后兩次請求定位時間間隔不能小於1000ms。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM