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定位管理器获取到的经纬度设置到导航地图上,即可显示当前位置(较小偏移)
本文出自 “菜鸟的心路历程” 博客,转载请与作者联系!
更多相关文章
- android 积累一些自定义view的知识
- 使用googleMap获取api方法
- Android中 Rect类
- android view的缩放平移简单实现
- android中悬浮显示可拖动的歌词栏
- TextUtils用法
- android:layout_below位置到底below到哪儿了?
- Android(安卓)RecyclerView:设置指定位置的两种方法
- Android(安卓)SurfaceView