В GoogleMap android API v2, как мне получить текущий уровень масштабирования карты? В API v1 раньше был float MapView.getZoomLevel()
, но похоже, что в версии API, которую я использую, нет ничего подобного и что рекомендует Google.
Я подумал о том, чтобы использовать переменную класса, чтобы сохранить уровень масштабирования вручную с помощью кнопки щелчка кнопки масштабирования, но это не решает проблему для масштабирования типа пинча.
Зачем нужен текущий уровень масштабирования? Я ограничиваю диапазон карт определенным прямоугольником и хочу, чтобы какие-либо ходы, которые иначе оставили бы этот прямоугольник, оправились бы назад. Для этой анимации я должен использовать уровень масштабирования, так как без него используется максимальный уровень масштабирования по умолчанию. Я действительно хочу сохранить уровень масштабирования, используемый до попытки перемещения.
protected void recenterMap() {
map.getMinZoomLevel();
if(MAP_BOUNDS.contains(map.getCameraPosition().target) == false) {
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MAP_CENTER)
.zoom(current_zoom)
.build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
} else {
MAP_CENTER = map.getCameraPosition().target;
}
}
Обратите внимание, что переменная current_zoom
- это то, что мне нужно определить.