private void setBounds() {
try {
LatLngBounds.Builder builder = LatLngBounds.builder();
if (mAdapter != null && mAdapter.dataSet != null && mAdapter.dataSet.size() > 0) {
for (ClusterItem item : mAdapter.dataSet) {
builder.include(item.getPosition());
}
} else {
/*set destination location bounds*/
LatLng destLatLng = getDestLatLng();
if (destLatLng != null) {
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(destLatLng, 10));
return;
}
}
final LatLngBounds bounds = builder.build();
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 300));
} catch (Exception e) {
e.printStackTrace();
}
}
googleMap.animateCamera()
используется для работы:
- при закрытой клавиатуре.
при наличии только одной координаты:
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(destLatLng,10));
имейте в виду, что приведенная выше строка кода работает, даже если клавиатура открыта.
Проблема возникает, когда я использовал для анимации камеры с границами, когда клавиатура открыта:
final LatLngBounds bounds = builder.build();
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 300));
Я не знаю почему это не работает. любая помощь будет оценена. Спасибо!