flydragon111 2016-05-11 06:33 采纳率: 35.3%
浏览 1478

求大师解答?百度地图开发无法定位到我的位置

这是我的代码:

public class MainActivity extends ActionBarActivity {
private MapView mMapView;
private BaiduMap mBaiduMap;

private LocationClient mLocationClient;
private MyLocatonListener mLocatonListener;
private boolean isFirstIn=true;
private Context context;
private double mLatitude;
private double mLongitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
  //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
    //注意该方法要再setContentView方法之前实现  
    SDKInitializer.initialize(getApplicationContext());
    setContentView(R.layout.activity_main);

    this.context=this;
    initView();
    initLocation();
}
private void initLocation() {
    // TODO Auto-generated method stub
    //mLocationClient=new LocationClient(this);
    mLocationClient = new LocationClient(getApplicationContext()); 
    mLocatonListener=new MyLocatonListener();
    mLocationClient.registerLocationListener(mLocatonListener);
    LocationClientOption option=new LocationClientOption();
    option.setCoorType("bd09ll");
    option.setIsNeedAddress(true);
    option.setOpenGps(true);
    option.setScanSpan(1000);
    mLocationClient.setLocOption(option);
}


private void initView() {
    // TODO Auto-generated method stub
    mMapView=(MapView) findViewById(R.id.id_bmapView);
    mBaiduMap=mMapView.getMap();

    MapStatusUpdate msu=MapStatusUpdateFactory.zoomTo(15.0f);
    mBaiduMap.animateMapStatus(msu);

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
    mMapView.onResume();
}
@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    mBaiduMap.setMyLocationEnabled(true);
    if(mLocationClient.isStarted()){
        mLocationClient.start();

    }
}
@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
     //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
    mMapView.onPause();  

}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
    mBaiduMap.setMyLocationEnabled(false);
    mLocationClient.stop();

}
@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
     //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
    mMapView.onDestroy();  

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    switch (item.getItemId()) {
    case R.id.id_map_common:
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        break;
    case R.id.id_map_site:
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
        break;
    case R.id.id_map_traffic:
        if(mBaiduMap.isTrafficEnabled()){
            mBaiduMap.setTrafficEnabled(false);
            item.setTitle("实时交通(off)");
        }
        else{
            mBaiduMap.setTrafficEnabled(true);
            item.setTitle("实时交通(on)");
        }
        break;
    case R.id.id_map_location:
        centerToMyLocation();
        break;

    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}


private void centerToMyLocation() {
    LatLng latLng=new LatLng(mLatitude, mLongitude);
    MapStatusUpdate msu=MapStatusUpdateFactory.newLatLng(latLng);
    mBaiduMap.animateMapStatus(msu);
}
public class MyLocatonListener implements BDLocationListener{

    @Override
    public void onReceiveLocation(BDLocation location) {
        // TODO Auto-generated method stub



        MyLocationData data=new MyLocationData.Builder()//
        .accuracy(location.getRadius())//
        .latitude(location.getLatitude())//
        .longitude(location.getLongitude())//
        .build();

        mBaiduMap.setMyLocationData(data);

        mLatitude=location.getLatitude();
        mLongitude=location.getLongitude();

        if(isFirstIn){
            LatLng latLng=new LatLng(location.getLatitude(), location.getLongitude());
            MapStatusUpdate msu=MapStatusUpdateFactory.newLatLng(latLng);
            mBaiduMap.animateMapStatus(msu);
            isFirstIn=false;
            Toast.makeText(context, location.getAddrStr(), Toast.LENGTH_SHORT).show();
        }
    }

}

}

  • 写回答

1条回答 默认 最新

  • flydragon111 2016-05-12 07:16
    关注

    没有哪个大神知道???图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试