В своем приложении использую google maps, но при переходе между активностями, бывает вылетает приложение со следующей ошибкой.
04-30 15:53:19.956 4980-4980/com.vm.sai E/UncaughtException: java.lang.IllegalStateException: Error using newLatLngBounds(LatLngBounds, int): Map size can't be 0. Most likely, layout has not yet occured for the map view. Either wait until layout has occurred or use newLatLngBounds(LatLngBounds, int, int, int) which allows you to specify the map's dimensions.
и указывает на ошибку в данной строке:
map.moveCamera(cu);
Данную строчку я использую следующим образом для первоначального приближения:
int padding = 150; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
map.moveCamera(cu);
Подскажите как подправить, чтоб приложение не вылетало так уж часто.
Класс MapActivity:
public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
createMapView();
}
private void createMapView() {
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
map.getUiSettings().setZoomControlsEnabled(true);
LatLngBounds.Builder builder = new LatLngBounds.Builder();
Marker marker = map.addMarker(new MarkerOptions()
.position(new LatLng(47.045029, 28.861427))
.title("Marker")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.snippet("Population: 4,137,400"));
Marker marker2 = map.addMarker(new MarkerOptions()
.position(new LatLng(47.000327, 28.867950))
.title("Marker"));
Marker marker3 = map.addMarker(new MarkerOptions()
.position(new LatLng(47.024204, 28.889236))
.title("Marker"));
builder.include(marker.getPosition());
builder.include(marker2.getPosition());
builder.include(marker3.getPosition());
LatLngBounds bounds = builder.build();
int padding = 150; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
map.moveCamera(cu);
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости