如何仅更改 Google 地图 API 中的倾斜度

How to change only the tilt in Google Map API

我的应用程序使用 Google 地图 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
            }
        }
    };
}

如您所见,我已经为地图对象添加了一个侦听器,只要相机位置发生变化就会触发,但我不知道如何只改变相机的倾斜度

您是指 CameraPositiontilting the map? You can do so by setting the tilt 字段吗?

使用 CameraUpdateFactory.newCameraPosition(CameraPosition) 创建一个新的 CameraUpdate,其中 CameraPosition 是新建的(在本例中,除了倾斜度外,参数与 position 相同)。然后您可以使用 moveCamera 应用更改。

我已将 OnCameraChangeListener 添加到地图对象

mMap.setOnCameraChangeListener(getCameraChangeListener());

如果缩放大于 15,则将倾斜度更改为 60

public 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()));
        }
    };
}