天天看點

android 百度地圖定位不準問題

近日在學習Android開發時,《第一行代碼》第十一章基于位置服務内容非常詳盡,但是最後運作程式時發現實際位置與地圖中辨別位置存在較大誤差,搜尋發現因為使用的坐标偏移标準不同:

WGS-84:是國際标準,GPS坐标(Google Earth使用、或者GPS子產品)

GCJ-02:中國坐标偏移标準,Google Map、高德、騰訊使用

BD-09:百度坐标偏移标準,Baidu Map使用

而百度地圖預設傳回的定位結果坐标系不是百度地圖坐标,是以需要進行設定,在初始化定位參數配置private void initLocation()函數中添加下圖語句即可。

private void initLocation(){
        LocationClientOption option = new LocationClientOption();
        //option.setLocationMode(LocationMode.Hight_Accuracy);
        option.setCoorType("bd09ll");//如果不設定則預設gcj02 進而導緻偏差
        option.setScanSpan(5000);
        option.setIsNeedAddress(true);
        mLocationClient.setLocOption(option);
    }