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定位管理器獲取到的經緯度設置到導航地圖上,即可顯示當前位置(較小偏移)