chvfily 2019-04-12 23:10 采纳率: 100%
浏览 300

百度地图 无法显示定位内容?

根据百度地图api走:可是无法显示当前定位内容:
图片说明

附上相关代码:

相关权限
图片说明

//MainActivity

public class MainActivity extends AppCompatActivity {
private MapView mMapView=null;
private BaiduMap mBaiduMap=null;
private LocationClient mLocationClient=null;
private boolean isFirstLoc=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView=findViewById(R.id.bmapView);
mBaiduMap=mMapView.getMap();//获取地图层
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//设置为普通模式

    //定位模块
    mBaiduMap.setMyLocationEnabled(true);//打开定位模式

    //定位初始化
    mLocationClient = new LocationClient(getApplicationContext());

  //通过LocationClientOption设置LocationClient相关参数
    LocationClientOption option = new LocationClientOption();
    option.setOpenGps(true); // 打开gps
    option.setIsNeedAddress(true);
    option.setCoorType("bd09ll"); // 设置坐标类型
    option.setScanSpan(1000);

    //设置locationClientOption
    mLocationClient.setLocOption(option);

    //注册LocationListener监听器
    MyLocationListener myLocationListener = new MyLocationListener();
    mLocationClient.registerLocationListener(myLocationListener);
    //开启地图定位图层
    mLocationClient.start();

}

public class MyLocationListener extends BDAbstractLocationListener {
    @Override
    public 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();

        mBaiduMap.setMyLocationData(locData);

// if (isFirstLoc)
// {
// isFirstLoc = false;
// LatLng ll = new LatLng(location.getLatitude(),location.getLongitude());
// MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
// mBaiduMap.animateMapStatus(u);
// }
// Toast.makeText(MainActivity.this, "当前的位置:"+location.getCity(), Toast.LENGTH_SHORT).show();
}
}

@Override
protected void onResume() {
    super.onResume();
    //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
    mMapView.onResume();
}
@Override
protected void onPause() {
    super.onPause();
    //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
    mMapView.onPause();
}
@Override
protected void onDestroy() {
    mLocationClient.stop();
    mBaiduMap.setMyLocationEnabled(false);
    mMapView.onDestroy();
    mMapView = null;
    super.onDestroy();

}

//DemoApplication
public class DemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(getApplicationContext());
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器