Khi*_*mat 38 android google-maps google-maps-mobile google-maps-android-api-2
我正在开发一款应该使用Google Maps v2的Android应用.现在我一直在找到地图的缩放级别发生变化时.任何人都可以帮助我吗?先谢谢.
Dis*_*Dev 50
如果您正在寻找如何确定缩放级别是否已从之前的缩放级别更改,请按以下步骤进行操作:
定义实例变量以跟踪先前的缩放级别:
//Initialize to a non-valid zoom value
private float previousZoomLevel = -1.0f;
Run Code Online (Sandbox Code Playgroud)
另外,定义一个实例变量,让您知道地图是否缩放:
private boolean isZooming = false;
Run Code Online (Sandbox Code Playgroud)
设置GoogleMap实例时,请为其指定一个OnCameraChangeListener ...
//mMap is an instance of GoogleMap
mMap.setOnCameraChangeListener(getCameraChangeListener());
Run Code Online (Sandbox Code Playgroud)
现在,定义将确定缩放级别是否已更改的OnCameraChangeListener:
public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
Log.d("Zoom", "Zoom: " + position.zoom);
if(previousZoomLevel != position.zoom)
{
isZooming = true;
}
previousZoomLevel = position.zoom;
}
};
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以检查isZooming的值以了解您是否正在更改缩放级别.
一定要设置
isZooming = false;
Run Code Online (Sandbox Code Playgroud)
在你完成任何动作后依赖于知道地图是否缩放.
Com*_*are 37
制定实施的OnCameraChangeListener,并通过它的一个实例给setOnCameraChangeListener()你的GoogleMap.onCameraChange()只要用户更改缩放,居中或倾斜,就应该调用您的监听器.您可以从CameraPosition传递的对象中找到新的缩放级别.
ᴛʜᴇ*_*ᴛᴇʟ 32
由于之前的答案基于OnCameraChangeListener并且已弃用,因此该答案基于相机setOnCameraMoveListener.
在此示例中,当用户更改缩放(使用控件或手指和缩放)时,我正在更改我的地图类型.如果缩放级别更改为高于18.0,则地图类型将更改为MAP_TYPE_HYBRIB,如果它低于18.0,则地图类型将更改为MAP_TYPE_NORMAL.
googleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
@Override
public void onCameraMove() {
CameraPosition cameraPosition = googleMap.getCameraPosition();
if(cameraPosition.zoom > 18.0) {
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
} else {
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29564 次 |
| 最近记录: |