Google Maps v2 API для Android местоположение возвращает ноль

Привет, мне нужна помощь с этим, я уже посмотрел и попробовал много разных вещей. Я пытаюсь получить мое текущее местоположение на Android, но так как местоположение возвращается, ноль, мое приложение вылетает. Мне действительно нужна помощь с этим, пожалуйста.

Я не знаю, ясно ли я здесь, но каждый раз, когда я вызываю getLastKnownlocation, он возвращается в ноль, поэтому, когда я пытаюсь получить двойной lat= location.getLatitude() для долготы, он ничего не возвращает и там где мое приложение падает.

Помогите... Вот кусок кода

mMap.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();

String provider = locationManager.getBestProvider(criteria, true);

Location location = locationManager.getLastKnownLocation(provider);

mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

double lat = location.getLatitude();
double lng = location.getLongitude();
LatLng latLng = new LatLng(lat, lng);

на широте это где останавливается.

2 ответа

Получаете ли вы объект GoogleMap из фрагмента перед вызовом этих функций?

Что-то вроде:

//get map fragment from the static layout (in this case it has id = "map")
    MapFragment mapFragment = (MapFragment) getFragmentManager()
            .findFragmentById(R.id.map);
//get GoogleMap object, then you can start using it, for example enabling the location
    map = mapFragment.getMap();
    map.setMyLocationEnabled(true);

Спасибо всем за помощь. Я ценю это, я уже решил свою проблему. Вот фрагмент кода, который помог мне сделать это:

//I needed to have this line before everything else for me to get my current 
//location from getLastKnownLocation method.

mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker").snippet("Snippet"));

//And the all the codes I had before
mMap.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();

String provider = locationManager.getBestProvider(criteria, true);

Location location = locationManager.getLastKnownLocation(provider);

mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

double lat = location.getLatitude();
double lng = location.getLongitude();
LatLng latLng = new LatLng(lat, lng);

mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(14));
mMap.addMarker(new MarkerOptions()
             .position(new LatLng(lat, lng))
             .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
             .title("Here"));
Другие вопросы по тегам