Search code examples
androidgoogle-mapsgoogle-maps-api-2google-maps-android-api-2android-maps-v2

Android Maps v2 rotate mapView with compass


I'm developing an app which needs to rotate the mapView with a compass. I know how to rotate the camera but I need to rotate the mapView with the compass. the center point should be the current location. I found codes for Maps V1 but I need to do it with Maps V2


Solution

  • OK, i figured it out myself. first you need to calculate the bearing from the compass. then the Maps api-2 camera can be rotated.

    public void updateCamera(float bearing) {
                CameraPosition currentPlace = new CameraPosition.Builder()
                        .target(new LatLng(centerLatitude, centerLongitude))
                        .bearing(bearing).tilt(65.5f).zoom(18f).build();
                googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(currentPlace));
    
        }
    

    set SensorListener in your code and call this method in onSensorChanged event. i have added a tilt value so the map will rotate in 3D.