Ответ 1
GoogleMap map;
....
float zoom = map.getCameraPosition().zoom;
Как получить текущий уровень масштабирования как целое число в GoogleMap. Мне нужно взять этот код из GMaps v1.1:
MapView mGoogleMapView;
int zoomLevel = mGoogleMapView.getZoomLevel();
Я знаю методы getMinZoomLevel() и getMaxZoomLevel(), однако я не могу найти что-либо в документации Android GMap V2, которая даст текущий уровень масштабирования. У кого-нибудь есть указатели на то, как это сделать?
Любая помощь будет оценена.
GoogleMap map;
....
float zoom = map.getCameraPosition().zoom;
Я думаю, что OnCameraChangeListener выполнит трюк.
map.setOnCameraChangeListener(new OnCameraChangeListener() {
private float currentZoom = -1;
@Override
public void onCameraChange(CameraPosition position) {
if (position.zoom != currentZoom){
currentZoom = position.zoom; // here you get zoom level
}
}
});
Update:
Из службы Google Play 9.4.0 OnCameraChangeListener устарел, и он больше не будет работать в ближайшее время. Впоследствии они заменяются на OnCameraMoveStarted Listener, OnCameraMoveListener, OnCameraMoveCancel edListener и OnCameraIdleListener.
Следовательно, мы можем использовать OnCameraIdleListener, чтобы получить текущий уровень масштабирования камеры.
Пример кода:
map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
int zoomLevel = map.getCameraPosition().zoom;
//use zoomLevel value..
}
});
Вызвать getCameraPosition()
в GoogleMap
и прочитать поле zoom
в результате CameraPosition
объект.