0

我无法获得我的位置。它总是崩溃。我检查了一切。谁能帮我找到我的位置?

private GoogleMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    if(isGooglePlay()){
        setContentView(R.layout.map);
        setupmapifneeded();
    }
}

private void setupmapifneeded() {
    if(map==null){

         map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();


    }if(map!=null){

         map.setMyLocationEnabled(true);

         LocationManager mlm = (LocationManager)getSystemService(LOCATION_SERVICE);
         Criteria c = new Criteria();

         String provider = mlm.getBestProvider(new Criteria(), false);

         if(provider == null){

             onProviderDisabled(provider);
         }

         Location mylocation = mlm.getLastKnownLocation(provider);
         if(mylocation != null){
             onLocationChanged(mylocation);
         }   
    }
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

}

private boolean isGooglePlay(){
    int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

    if(status == ConnectionResult.SUCCESS){
        return true;

    }else{
        ((Dialog)GooglePlayServicesUtil.getErrorDialog(status, this, 10)).show();
        //Toast.makeText(this, "nai", Toast.LENGTH_LONG).show();
    }
    return false;

}

@Override
public void onLocationChanged(Location mylocation) {
    double lat = mylocation.getLatitude();
    double longi = mylocation.getLongitude();
    LatLng latlng = new LatLng(lat,longi);

    map.moveCamera(CameraUpdateFactory.newLatLng(latlng));
    map.animateCamera(CameraUpdateFactory.zoomTo(10));
}
4

2 回答 2

0

你可以简单地使用

map.setMyLocationEnabled(true)

这将自动获取您在地图上的位置。

于 2013-11-19T03:53:24.307 回答
0

Location location = map.getMyLocation();

于 2014-01-09T18:51:16.457 回答