我的应用程序使用Google map API v2,如果用户达到大于16的缩放级别,我想更改倾斜
这是我到目前为止所做的事情
@Override
public void onMapReady(GoogleMap map) {
//..
mMap = map;
mMap.setOnCameraChangeListener(getCameraChangeListener());
}
public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
Log.d(MainActivity.TAG, "Zoom: " + position.zoom);
if(position.zoom > 16){
// change tilt here
}
}
};
}
正如您所看到的,我已经为地图对象添加了一个监听器,只要摄像机的位置发生变化就会触发,但我不知道如何仅更改摄像机的倾斜度
答案 0 :(得分:7)
我在地图对象中添加了OnCameraChangeListener
mMap.setOnCameraChangeListener(getCameraChangeListener());
如果变焦大于15
,则将倾斜度更改为60public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
int mCameraTilt = (position.zoom < 15) ? 0 : 60;
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(
new Builder()
.target(position.target)
.tilt(mCameraTilt)
.zoom(position.zoom)
.build()));
}
};
}
答案 1 :(得分:1)
你的意思是tilting the map吗?您可以通过设置CameraPosition
的{{3}}字段来完成此操作。
使用CameraUpdateFactory.newCameraPosition(CameraPosition)
创建一个新的tilt,其中新建了CameraPosition(在这种情况下,除了倾斜之外,其参数与position
相同)。然后,您可以使用moveCamera
来应用更改。