android 通過百度地圖定位獲取座標在導航地圖上面顯示,座標發生偏移


private void initMap() {

// 定位初始化

mLocClient = new LocationClient(this);

mLocClient.registerLocationListener(myListener);

LocationClientOption option = new LocationClientOption();

option.setOpenGps(true);// 打開gps

option.setCoorType("bd09ll"); // 設置座標類型

// setScanSpan < 1000 則爲 app主動請求定位;

// setScanSpan>=1000,則爲定時定位模式(setScanSpan的值就是定時定位的時間隔))

// 定時定位模式中,定位sdk會按照app設定的時間定位進行位置更新,定時回調定位結果。

// http://developer.baidu.com/map/index.php?title=android-locsdk/qa

// option.setScanSpan(1000);

mLocClient.setLocOption(option);

mLocClient.start();

}

    通過百度地圖(以上方法)獲取當前座標,在導航地圖上顯示的話,位置將發生偏移


解決辦法(用LocationManager定位管理器獲取):

 

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

double longitude = location.getLongitude();

double latitude = location.getLatitude();

將LocationManager定位管理器獲取到的經緯度設置到導航地圖上,即可顯示當前位置(較小偏移)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章