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"));