猿问

百度地图定位自己的坐标后显示空白

public class MainActivity extends Activity {
  MapView mMapView = null; 
  BaiduMap bmap = null;
  Boolean traffic= false;
  
  LocationClient lclient;
  Boolean first_post = true;
  Context thiscontext =null;
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState);  
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         SDKInitializer.initialize(getApplicationContext()); 
         setContentView(R.layout.activity_main); 
        
         thiscontext=this;
         mMapView = (MapView) findViewById(R.id.bmapView); 
         MapStatusUpdate mfactory = MapStatusUpdateFactory.zoomTo(15.0f);
         bmap=mMapView.getMap();
         bmap.setMapStatus(mfactory);
        
         LocationMothod();
     } 
    
     @Override
  protected void onStart() {
   super.onStart();
   bmap.setMyLocationEnabled(true);
   if(!lclient.isStarted())
   lclient.start();
  }

  @Override
  protected void onStop() {
   super.onStop();
   bmap.setMyLocationEnabled(false);
   lclient.stop();
  }

  @Override 
     protected void onDestroy() { 
         super.onDestroy(); 
         //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 
         mMapView.onDestroy(); 
     } 
     @Override 
     protected void onResume() { 
         super.onResume();  
         mMapView.onResume(); 
         } 
     @Override 
     protected void onPause() { 
         super.onPause();  
         mMapView.onPause(); 
         }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
   getMenuInflater().inflate(R.menu.main, menu);
   return super.onCreateOptionsMenu(menu);
  }
  
  public void LocationMothod(){
   lclient=new LocationClient(this);
   lclient.registerLocationListener(new MyListener());
   LocationClientOption lcOption=new LocationClientOption();
   lcOption.setCoorType("bd09ll");
   lcOption.setIsNeedAddress(true);
   lcOption.setOpenGps(true);
   lcOption.setScanSpan(1000);
   lclient.setLocOption(lcOption);
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
   
   switch(item.getItemId()){
   case R.id.pmap:
    bmap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
    break;
   case R.id.wmap:
    bmap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
    break;
   case R.id.tmap:
    if(!traffic){//如果是关闭状态
     bmap.setTrafficEnabled(true);
     traffic=true;
    }else{//如果是打开状态
     bmap.setTrafficEnabled(false);
     traffic=false;
    }
    break;
   }
   return super.onOptionsItemSelected(item);
  } 
    
 class MyListener implements BDLocationListener{

  @Override
  public void onReceiveLocation(BDLocation arg0) {
   
   MyLocationData mlData = new MyLocationData.Builder()
                           .accuracy(arg0.getRadius())
                           .latitude(arg0.getLatitude())
                           .longitude(arg0.getLongitude())
                           .build();
   bmap.setMyLocationData(mlData);
   if(first_post){
    LatLng llng=new LatLng(arg0.getLatitude(), arg0.getLongitude());
    MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(llng);
    bmap.animateMapStatus(msu);
    //first_post=false;
    Toast.makeText(thiscontext, arg0.getLatitude()+"---"+arg0.getLongitude(), Toast.LENGTH_SHORT).show();
   }
  }
 }
}

不能定位自己的坐标地图,显示空白中间有一个位置原点,Toast打印出:4.9E-324---4.9E-324。

用户1141250
浏览 3068回答 4
4回答

tzm1513

我仔细看了你的代码好像没有问题。是不是key出错了。我开始也报错了,后面发现是我的经纬度获取的时候,写错了。然后设置中心点的时候出错,导致的。希望对你有帮助

tzm1513

不知道你解决了没有。我确定key是没有出问题的而且还打印出了地址经纬度。但是界面上显示的是白板,只有百度地图的logo

微笑了521

你解决了吗
随时随地看视频慕课网APP

相关分类

Android
我要回答