如何在GoogleMap上以整数形式获取当前缩放级别。我需要从GMaps v1.1中获取以下代码:
MapView mGoogleMapView;
int zoomLevel = mGoogleMapView.getZoomLevel();
我知道方法getMinZoomLevel()和getMaxZoomLevel(),但是我在Android GMap V2文档中找不到能够提供当前缩放级别的任何内容。有人对如何执行此操作有任何指示吗?
任何帮助,将不胜感激。
Answers:
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
}
}
});
更新:
自Google Play服务9.4.0起,OnCameraChangeListener已被弃用,很快将不再工作。或者将它们替换为OnCameraMoveStartedListener,OnCameraMoveListener,OnCameraMoveCanceledListener和OnCameraIdleListener。
因此,我们可以在此处使用OnCameraIdleListener来获取相机的当前缩放级别。
代码样例:
map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
int zoomLevel = map.getCameraPosition().zoom;
//use zoomLevel value..
}
});
map.getCameraPosition().zoom
吗?为什么需要实现侦听器?这样一onCameraIdleListener
来,仅当相机进入空闲模式时,您才不会获得当前的变焦级别吗?
打电话getCameraPosition()
的GoogleMap
,并读取zoom
所产生的领域CameraPosition
对象。