Необходимо получить координаты местоположения и отобразить их на карте (Google Maps). Для этого использую класс FusedLocationProviderClient. Его объект инициализирую в методе onCreate() следующим образом:
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
Далее определяю location (вызываю метод identifyCoordinates из переопределенного метода onMapReady(GooglMap)):
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
setCoordinates(location);
}
}
});
И передаю его в метод setCoordinates для инициализации координат (приватные поля типа double)
public void setCoordinates(Location location) {
lat = location.getLongitude();
lon = location.getLatitude();
}
Далее в методе onMapReady после успешного определения координат устанавливаю маркер на карте:
@Override
public void onMapReady(GoogleMap googleMap) {
identifyCoordinates();
mMap = googleMap;
LatLng latLng = new LatLng(lon, lat);
mMap.addMarker(new MarkerOptions().position(latLng).title("Вы здесь"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
}
Но, после этого получаю координаты 0.00 и 0.00. Удалось решить данную проблему следующим образом:
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
setCoordinates(location);
LatLng latLng = new LatLng(lon, lat);
mMap.addMarker(new MarkerOptions().position(latLng).title("Вы здесь"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
}
}
});
На карте все корректно отображалось, но этот способ, как мне кажется, несколько безобразен. Подскажите, как я могу еще решить данную проблему?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Можно ли сделать так, если можно то как, что бы при нажатии Jbutton, выполнялся определенный метод каждую нечетную минуту пока программа не будет...
У меня есть проект посренный с использование MVC паттернаЯ решил перевести его на spring
Пытаюсь разобраться в функции генерации запросов в приложенииВ запросе в параметре передается MD5-строка