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

时间:2015-02-23 12:29:43

标签: android google-maps-api-2

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

正如您所看到的,我已经为地图对象添加了一个监听器,只要摄像机的位置发生变化就会触发,但我不知道如何仅更改摄像机的倾斜度

2 个答案:

答案 0 :(得分:7)

我在地图对象中添加了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()));
        }
    };
}

答案 1 :(得分:1)

你的意思是tilting the map吗?您可以通过设置CameraPosition的{​​{3}}字段来完成此操作。

使用CameraUpdateFactory.newCameraPosition(CameraPosition)创建一个新的tilt,其中新建了CameraPosition(在这种情况下,除了倾斜之外,其参数与position相同)。然后,您可以使用moveCamera来应用更改。