300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 百度地图SDK无法定位到当前所在位置;一直显示天安门

百度地图SDK无法定位到当前所在位置;一直显示天安门

时间:2022-09-23 09:56:49

相关推荐

百度地图SDK无法定位到当前所在位置;一直显示天安门

按照百度官方SDK接入百度地图SDK后,进行地图定位的时候,缩小界面,显示出了定位图标,但是打开地图界面,一直显示天安门的位置。

/*** 初始化定位内容*/private void initLocate() {//定位初始化mLocationClient = new LocationClient(getApplicationContext());//通过LocationClientOption设置LocationClient相关参数LocationClientOption option = new LocationClientOption();option.setOpenGps(true); // 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(1000);//设置locationClientOptionmLocationClient.setLocOption(option);//注册LocationListener监听器MyLocationListener myLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(myLocationListener);//开启地图定位图层mLocationClient.start();}public class MyLocationListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//mapView 销毁后不在处理新接收的位置if (location == null || mMapView == null) {return;}MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(location.getDirection()).latitude(location.getLatitude()).longitude(location.getLongitude()).build();LogUtils.e(TAG, "定位的位置为 " + locData.latitude + " 经度 = "+ locData.longitude);LogUtils.e(TAG, location.getLocType() + "定位结果码为" + location.getLocTypeDescription());mBaiduMap.setMyLocationData(locData);LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());MapStatus.Builder builder = new MapStatus.Builder();builder.target(ll).zoom(18.0f);mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));}}

以上是代码,重点如下:

1、

创建这个对象的时候,上下文通过使用 getApplicationContext() 获取上下文。但是本人更改之后,没起作用,不过也没有修改。感觉这个上下文和activity的上下文是一样的。

2、在监听器中,添加红色框选中的代码,就可以定位到当前所在位置了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。