Na GoogleMap android API v2, w jaki sposób uzyskać aktualny poziom powiększenia mapy? Na interfejsie API v1 było kiedyś float MapView.getZoomLevel()
, ale wydaje się, że nie ma w nim nic podobnego w wersji interfejsu API, której używam, i którą Google zaleca.Jak uzyskać aktualny poziom powiększenia GoogleMap?
Pomyślałem o użyciu zmiennej klasy, aby zapisać poziom powiększenia ręcznie za pomocą przycisku nasłuchu z przyciskiem powiększania, ale nie rozwiązuje to problemu z powiększaniem typu "szczypta".
Dlaczego potrzebuję bieżącego poziomu powiększenia? Ograniczam zasięg mapy do pewnego prostokąta i chcę, aby jakiekolwiek ruchy, które w przeciwnym razie opuściłyby ten prostokąt, odbijały się. Ta animacja wymaga użycia poziomu powiększenia, ponieważ bez niego używany jest domyślny maksymalny poziom powiększenia. Tym, czego naprawdę chcę, jest utrzymanie poziomu powiększenia przed próbą przeniesienia.
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;
}
}
Zauważ, że zmienna current_zoom
jest to, czego potrzebuję do zdefiniowania.
(minęło trochę czasu odkąd dotknąłem go na samym systemie Android). –
Wow, nie spodziewałem się uzyskać zoom bezpośrednio z klasy (bez metod)! – jhc
Cieszę się, że mogę pomóc :) Witamy w nieużytecznych dokumentach API Androida. –