Search code examples
androidgoogle-maps-api-2

How to change only the tilt in Google Map API


My application use Google map API v2, I'd like to change the tilt if the user reaches a zoom level greater than 16

Here is what I've done so far

@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
            }
        }
    };
}

As you can see I've added a listener to the map object, that trigger whenever position of the camera change, but I don't know how to change only the tilt of the camera


Solution

  • i've added a OnCameraChangeListener to the map object

    mMap.setOnCameraChangeListener(getCameraChangeListener());
    

    change the tilt to 60 if the zoom is greater than 15

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