Search code examples
androidgoogle-street-view

How to change camera angle of StreetViewPanoramaFragment?


StreetViewPanoramaFragment streetViewFragment = (StreetViewPanoramaFragment) getFragmentManager().findFragmentById(R.id.g_map_street);
streetViewFragment.getStreetViewPanoramaAsync(this);

@Override
    public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
        streetView = streetViewPanorama;
        streetViewPanorama.setPosition(new LatLng(Latitude, Longtitude));
    }

I have a value of Heading which returns angle.

https://maps.googleapis.com/maps/api/streetview?size=800x800&location=%s,%s&heading=%s

Using it , I can get Streetview Image properly but not working in StreetViewPanoramaFragment.


Solution

  • Finally , after lots of R&D I found this solution.. and its works for me.

    @Override
    public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
        streetViewPanorama.setPosition(new LatLng(Latitude, Longtitude));
        try {
            //Change angle of street view
            final int DURATION = 1000;
            StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
                    .zoom(streetViewPanorama.getPanoramaCamera().zoom)
                    .tilt(streetViewPanorama.getPanoramaCamera().tilt)
                    .bearing(streetViewPanorama.getPanoramaCamera().bearing + angle) // angle value by Maps Api
                    .build();
            streetViewPanorama.animateTo(camera, DURATION);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }