Я беру свое текущее местоположение для того, чтобы нанести маркер на карту, работая правильно, но какое-то время он не работает должным образом, я не знаю, почему помочь мне узнать свою ошибку в этом коде. Это мой код для определения текущего местоположения и размещения маркера на карте.Получить текущее местоположение на Карте Google не работает должным образом?
Это мой ява файл MapActivity.java
try {
if (googleMap == null) {
googleMap = ((MapFragment) getActivity().getFragmentManager()
.findFragmentById(R.id.map)).getMap();
googleMap.getUiSettings().setZoomControlsEnabled(false);
}
GoogleMapOptions options = new GoogleMapOptions();
options.mapType(GoogleMap.MAP_TYPE_NORMAL).compassEnabled(false)
.rotateGesturesEnabled(false).tiltGesturesEnabled(false);
// this is for get current location
LocationManager locationManager = (LocationManager) getActivity()
.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
Location location = locationManager
.getLastKnownLocation(locationManager.getBestProvider(
criteria, true));
if (location != null) {
currentLatLng = (new LatLng(location.getLatitude(),
location.getLongitude()));
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(location.getLatitude(), location
.getLongitude()), 13));
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(currentLatLng));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(currentLatLng).zoom(12)
.bearing(90).tilt(40).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
CircleOptions circleOptions = new CircleOptions()
.center(currentLatLng).radius(200)
.fillColor(Color.TRANSPARENT)
.strokeColor(0x10000000).strokeWidth(5);
mCircle = googleMap.addCircle(circleOptions);
}
} catch (Exception e) {
e.printStackTrace();
}
Это не совсем понятно, где у вас возникли проблемы. Однако использование 'getLastKnownLocation()' не очень надежное. Лучше явным образом запросить обновление местоположения, когда вам это нужно, взгляните на код в этом ответе, который использует FusedLocationProviderApi: http://stackoverflow.com/a/30255219/4409409 –
oky thnax позволяет мне видеть, где я делаю ошибку –